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

按Official Number分组计算PENALTY列均值报错求助

问题分析与解决方案

报错原因

你的代码存在两个核心问题:

  1. 错误地将整个数据框传给aggregate的第一个参数,导致函数尝试对所有列(包括非数值列)计算均值,非数值列无法被mean函数处理,进而触发'trim' must be numeric of length one错误。
  2. by参数中错误包含了PENALTY列,这会让分组条件变成OFFICIAL_NUMBER + PENALTY的组合,完全偏离了“按每个Official Number计算PENALTY均值”的需求。

正确解决方案

方法1:使用aggregate的标准写法

直接指定要聚合的目标列和分组列,避免传入整个数据框:

STATS <- aggregate(PENALTY ~ OFFICIAL_NUMBER, data = UPDATED_PENALTY, FUN = mean)
  • 公式PENALTY ~ OFFICIAL_NUMBER明确表示:以OFFICIAL_NUMBER为分组依据,计算PENALTY的均值
  • data参数指定数据源,避免重复写数据框名

方法2:用dplyr管道实现(更符合你使用%>%的习惯)

如果已经加载了dplyr包,推荐用更直观的分组聚合写法:

library(dplyr)

STATS <- UPDATED_PENALTY %>%
  group_by(OFFICIAL_NUMBER) %>%
  summarise(PENALTY_mean = mean(PENALTY, na.rm = TRUE))
  • group_by(OFFICIAL_NUMBER):按官员编号分组
  • summarise(...):计算每组的PENALTY均值,na.rm = TRUE可以自动忽略缺失值,避免结果出现NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:50:36