You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用dplyr实现分组总计数与组内子集计数统计

分组多维度计数实现方法

n()函数本身不支持传入筛选参数,设计上仅用于无参数返回当前分组的全部观测行数。要统计组内指定子集的观测数,直接在summarize()中搭配逻辑判断求和即可:逻辑判断返回的TRUE会被识别为1、FALSE识别为0,求和结果刚好就是符合条件的观测总数。

完整实现代码

library(dplyr)

df <- data.frame(
  Group=c('A','A','B','B','B'),
  Size=c('Large','Large','Large','Small','Small')
)

df_summary <- df %>%
  group_by(Group) %>%
  summarize(
    group_n = n(),
    Large_n = sum(Size == "Large")
  )

运行结果

执行代码后得到的结果完全匹配目标格式:

# A tibble: 2 × 3
  Group group_n Large_n
  <chr>   <int>   <int>
1 A           2       2
2 B           3       1

注意事项

  • 上述条件统计写法支持任意复杂的筛选规则,比如多条件组合判断sum(Size == "Large" & num_col > 10)、枚举值匹配判断sum(Size %in% c("Large", "Medium"))都可正常统计。
  • 如果偏好更显式的写法,也可以将统计逻辑写为sum(ifelse(Size == "Large", 1, 0)),运行效果和直接对逻辑值求和完全一致。

内容的提问来源于stack exchange,提问作者Michael Clauss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 20:27:31