[英]Calculate percentage by group in one column using dplyr, ignoring blanks
我想計算“顏色”列中的百分比,忽略空白。
例子:
DF
Color
green
green
blue
blue
blue
blue
代碼
Df %>%
group_by(color) %>%
summarise(n = n()) %>%
mutate(per = n/sum(n, na.rm = TRUE))
期望的輸出:
Color n per
green 2 0.33
blue 4 0.67
缺少什么代碼? 我知道這是一個簡單的問題,非常感謝您提供的見解!
我試過你的代碼,它似乎可以工作,只是輸出包含一行NA
值,我認為這是你遇到的問題。 我會像這樣修復它:
df %>% filter(!is.na(color)) %>%
count(color) %>%
mutate(per = n/sum(n))
或者,如果您需要在大型數據集上運行得更快的東西:
df <- df[!is.na(df$color),] %>% count(color)
df$per <- df$n/sum(df$n)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.