tidyverse:汇总时计算特定级别的数量

时间:2017-03-22 14:47:57

标签: r group-by dplyr tidyverse summarize

我想在分组后总结时,计算另一个因素的特定级别的数量。

在下面的工作示例中,我想计算每组中"male"级别的数量。我已经尝试了许多计数,计数等等但却无法找到一种简单明了的方法。

df <- data.frame(Group=replicate(20, sample(c("A","B"), 1)),
                 Value=rnorm(20),
                 Factor=replicate(20, sample(c("male","female"), 1)))
df %>% 
  group_by(Group) %>% 
  summarize(Value = mean(Value),
            n_male = ???)

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我们可以sum logical使用vector,即Factor == "male"TRUE/FALSE将被强制转移到1/0以获得“男性”的频率。我们执行sum

时的元素
df %>%
   group_by(Group) %>% 
   summarise(Value = mean(Value), 
             n_male = sum(Factor=="male"))