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

使用dplyr的group_by和summarise时结果未按分组聚合而是混乱合并,该如何修复?

修复dplyr中group_by+summarise的分组聚合问题

嘿,这个问题我碰到过好多次啦!问题出在你summarise里的dep$DEP_TYPE写法——这直接破坏了dplyr的分组逻辑。

当你用group_by(ORIGIN)把数据按ORIGIN分组后,dplyr会自动维护每个分组的上下文,这时候你只需要直接写列名DEP_TYPE就能引用当前分组里的对应列。但你加上dep$之后,相当于强行调用了整个原始数据框的DEP_TYPE列,而不是当前分组的子集,所以sum计算的是全局所有ontime的数量,自然不会按ORIGIN正确分组。

修复起来超简单,把dep$删掉就好:

dep %>% 
  group_by(ORIGIN) %>% 
  summarise(ontime_dep = sum(DEP_TYPE == "ontime", na.rm = TRUE))

另外给你个小建议,如果你用的是较新版本的dplyr(1.0.0及以上),可以用更简洁的count函数来实现同样的效果,代码看起来更清爽:

dep %>% 
  filter(DEP_TYPE == "ontime") %>% 
  count(ORIGIN, name = "ontime_dep")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:52:41