整洁数据:在汇总时计算特定级别的数量

7

在分组汇总后,我希望计算另一个因素中特定层级的数量。

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

感谢您的帮助!

2
也许 with(df, table(Factor)) 或者 with(df, table(Factor, Group)) 也会引起兴趣。 - lmo
1个回答

9
我们可以在逻辑向量上使用sum,例如Factor == "male"。当我们执行sum时,TRUE/FALSE将被强制转换为1/0,以获得“男性”元素的频率。
df %>%
   group_by(Group) %>% 
   summarise(Value = mean(Value), 
             n_male = sum(Factor=="male"))

2
此外,您还可以对变量 Factor 应用过滤器:n_male = length(Factor[Factor=="male"])) - count

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接