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

使用dplyr按组计算均值结果异常,求解决方法

解决dplyr按组计算均值时分组失效的问题

这个问题我之前也碰到过,根源在于你在group_by()里用了Data$CodeProject这种外部引用方式,导致dplyr没法正确识别分组逻辑,最终计算出的是整个数据集的均值,而不是每组的均值。

问题原因

当你在管道(%>%)里写Data$CodeProject时,你是直接引用了原始数据框的整列,而不是管道传递过来的、已经被分组处理的数据子集。这就相当于告诉dplyr:"别管管道里的分组,直接用整个数据的CodeProject列",所以summarize里的mean(Price)计算的是所有Price的平均值((3+4+5+6+9)/5 = 5.4),自然每个组的结果都一样。

修正后的代码

你只需要去掉group_by()里的Data$前缀,直接使用列名即可:

library(dplyr)
Data %>% 
  group_by(CodeProject) %>% 
  summarize(
    n = n(),
    mean_pr = mean(Price, na.rm = TRUE)
  )

预期输出

运行上面的代码后,你会得到正确的分组均值结果:

# A tibble: 2 × 3
  CodeProject     n mean_pr
  <chr>       <int>   <dbl>
1 Pr1             3       4
2 Pr2             2       7.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:54:54