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

如何在同一数据表中同时实现分组统计总数与筛选计数?

问题描述

现有如下格式的数据集:

ID|Filter|
 1     Y
 1     N
 1     Y
 1     Y
 2     N
 2     N
 2     N
 2     Y
 2     Y
 3     N
 3     Y
 3     Y

希望得到分组后的统计结果,同时展示每个ID的总计数与Filter为"Y"的计数:

ID|All Count|Filter Yes
 1     4          3
 2     5          2
 3     3          2

目前仅能通过以下代码实现总计数统计,如何添加Filter为"Y"的计数列?

df <- df %>%
  group_by(ID)%>%
  summarise(`All Count`=n())
解决方案

只需在summarise函数里新增一列,用sum(Filter == "Y")统计每个分组中Filter为"Y"的行数即可——逻辑判断Filter == "Y"会返回布尔值,求和时TRUE会被转换为1,FALSE转换为0,最终结果就是"Y"的数量。修改后的代码如下:

df <- df %>%
  group_by(ID) %>%
  summarise(
    `All Count` = n(),
    `Filter Yes` = sum(Filter == "Y")
  )

如果数据集的Filter列存在NA值,想要排除这些无效值,可以加上na.rm = TRUE参数:

df <- df %>%
  group_by(ID) %>%
  summarise(
    `All Count` = n(),
    `Filter Yes` = sum(Filter == "Y", na.rm = TRUE)
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:35:22