使用dplyr按组计算的百分比

use*_*440 1 r dplyr

使用df如下数据框

df <- data.frame(colors = c("red", "blue", "green", "red", "red" , "blue"))
Run Code Online (Sandbox Code Playgroud)

我可以使用dplyr找出每种颜色的计数,如下所示

df %>%
  group_by(color) %>%
    summarise(count = n())
Run Code Online (Sandbox Code Playgroud)

而不是计数我需要找到每种颜色的百分比计数 - 如何使用dplyr去做?

Rom*_*ois 7

您可以将此管道传输到mutate( prop = count / sum(count) )或直接在summarise其中nrow(.).像这样的东西:

df %>%
  group_by(colors) %>%
  summarise(count = n() / nrow(.) )
Run Code Online (Sandbox Code Playgroud)

要么

df %>%
  group_by(colors) %>%
  summarise(count = n() ) %>%
  mutate( prop = count / sum(count) )
Run Code Online (Sandbox Code Playgroud)

  • 你能给出一些在`nrow(.)`中使用的点(.)的细节吗? (2认同)
  • “。”代表整个数据帧(此处为“ df”) (2认同)