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

标签 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 = ???)

谢谢你的帮助!

最佳答案

我们可以在 sum logicalvector 上使用 Factor == "male" 。当我们执行 TRUE/FALSE 时,1/0 将被强制转换为 sum 以获取“男性”元素的频率

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

关于r - tidyverse:汇总时计算特定级别的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955041/

相关文章:

r - 检查组 ID 是否所有行都相等并返回 bool 值

mysql - 如何在 SQL 中加入 'union all' 的结果

sql - COALESCE 类型 jsonb 和 boolean 无法匹配

r - 按值选择多个观察值

r - R中的距离矩阵

r - 取消聚合数据框

R 方法论 : Control and I/O between laptop R and large computational servers

r - 如何将字符向量转换为数字?

r - 计算 R 中疾病的首次出现次数

r - 如何将自定义函数应用于数据框的每一列