簡體   English   中英

使用 dplyr 按組計算一列中的百分比,忽略空白

[英]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.

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