[英]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))
提前致謝!
如果我對您的理解正確,那么您想要cyl
和am
每個組合的記錄所占的比例。 如果是這樣,那么我認為您的代碼無法正常工作,因為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.