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

tidyverse: count number of a specific level when summarizing

我想在分组后总结时,统计另一个因素的特定水平的数量。

在下面的工作示例中,我想计算每个组中 "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 = ???)

感谢您的帮助!

我们可以在 logical vector 上使用 sum,即 Factor == "male"。当我们执行 sum

时,TRUE/FALSE 将被强制转换为 1/0 以获得 'male' 元素的频率
df %>%
   group_by(Group) %>% 
   summarise(Value = mean(Value), 
             n_male = sum(Factor=="male"))