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

R语言dplyr使用group_by分组不生效,如何按分组统计符合条件的行数

R dplyr分组计数解决方法

问题原因

你当前的代码仅完成了字段筛选、符合条件的行过滤、分组结构声明三个步骤,没有添加汇总计数的逻辑,因此不会输出分组统计结果。

解决代码

方案1:衔接你已有的代码逻辑

在现有管道末尾添加summarise()和计数函数n()即可得到统计结果:

savanna = df %>%
  select(Species, blooming, Location) %>%
  filter(blooming == "Yes") %>%
  group_by(Location) %>%
  summarise(yes_blooming_num = n())

方案2:更简洁的count()实现

可以直接用dplyr内置的count()函数一步完成分组计数,无需单独声明分组:

# 写法1:先过滤再计数
savanna = df %>%
  filter(blooming == "Yes") %>%
  count(Location, name = "yes_blooming_num")

# 写法2:直接用权重参数过滤计数
savanna = df %>%
  count(Location, wt = blooming == "Yes", name = "yes_blooming_num")

可选优化

如果你的Location因子存在没有对应“Yes”观测的空水平,可以在计数前添加droplevels()清理无效因子水平,避免结果出现计数值为0的冗余行:

savanna = df %>%
  filter(blooming == "Yes") %>%
  mutate(Location = droplevels(Location)) %>%
  count(Location, name = "yes_blooming_num")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:06:02