簡體   English   中英

如何通過R中的dplyr中的另一個變量(而不是頻率)來計算比例

[英]how to calculate proportion by another variable (not by frequency) in dplyr in R

使用mtcars數據,我想計算每組cyl和am的mpg比例。 如何計算呢?

mtcars %>%
   group_by(cyl, am) %>%
   summarise(mpg = n(mpg)) %>%
   mutate(mpg.gr = mpg/(sum(mpg))

提前致謝!

如果我對您的理解正確,那么您想要cylam每個組合的記錄所占的比例。 如果是這樣,那么我認為您的代碼無法正常工作,因為n()不接受參數。 您還需要先ungroup()然后再計算比例。

您可以簡單地執行以下操作:

mtcars %>%
   group_by(cyl, am) %>%
   summarise(mpg = n()) %>%
   ungroup() %>%
   mutate(mpg.gr = mpg/(sum(mpg))

#> # A tibble: 6 x 4
#>     cyl    am   mpg mpg.gr
#>   <dbl> <dbl> <int>  <dbl>
#> 1     4     0     3 0.0938
#> 2     4     1     8 0.25  
#> 3     6     0     4 0.125 
#> 4     6     1     3 0.0938
#> 5     8     0    12 0.375 
#> 6     8     1     2 0.0625

請注意,由於使用了ungroup() ,比例是使用所有記錄的計數來計算的,而不是像以前那樣僅使用cyl組中的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM