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

R语言group_by分组失效:分组计算化学参数均值仅得单一结果

问题排查与修正方案

嘿,我来帮你看看这段代码为啥没得到预期结果!你的代码里有两个关键问题导致只返回了一个全局均值:

核心问题点

  • 分组列名引用错误:你在group_by里用了单引号'Parameter Name',这会把它当成一个固定的字符串常量,而不是数据框里的列名。所以dplyr根本没按Parameter Name来分组,而是把整个数据集当成了一个组。
  • 均值计算用了全局数据:你在mean()里写daily_SPEC$"Arithmetic Mean",这会直接取原始数据集的整列计算均值,而不是每个分组内的子集数据。这就是为啥结果只有一行全局均值。

修正后的代码

只需要改两个地方:用反引号包裹带空格的列名(dplyr里带空格的列名得这么处理),计算均值时直接用列名(不用加数据集前缀):

Q2 <- daily_SPEC %>% 
  group_by(`Parameter Name`, add = FALSE) %>% 
  summarize(Mean_by_chemical = mean(`Arithmetic Mean`, na.rm = TRUE))

要是你偏好更严谨的列引用方式,也可以用.data代词来明确指定列:

Q2 <- daily_SPEC %>% 
  group_by(.data[["Parameter Name"]], add = FALSE) %>% 
  summarize(Mean_by_chemical = mean(.data[["Arithmetic Mean"]], na.rm = TRUE))

这样修改后,就能正确按每个化学品名称分组,计算对应的均值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:46:25