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

R导入Excel数据后用aggregate计算分组均值返回NA如何解决

问题原因

报错核心是你从Excel导入数据时,Effect、Use、Products三个字段被识别为非数值类型(常见为字符型或因子型),mean()函数无法对非数值变量计算均值,因此返回NA。

修复步骤

  1. 转换目标列为数值类型
    首先通过str(d)确认3-5列的类型,如果为字符型或因子型,批量转换:
# 批量将第3到5列转为数值型,先转字符再转数值避免因子编码错误
d[, 3:5] <- lapply(d[, 3:5], function(x) as.numeric(as.character(x)))

如果转换后出现额外NA,说明原数据中存在非数字内容(比如空格、特殊符号),先清理再转换:

# 先清理空白字符再转数值
d[, 3:5] <- lapply(d[, 3:5], function(x) {
  x <- gsub("\\s", "", x)
  as.numeric(x)
})
  1. 修正分组聚合代码
    你原有代码中d$Country ``列名多了一个空格,若实际列名无空格会调用失败,推荐使用更稳妥的公式写法:
# 按Country分组计算三个字段的均值,存在缺失值时加na.rm=TRUE参数
country_avg <- aggregate(. ~ Country, data = d[, c("Country", "Effect", "Use", "Products")], FUN = mean, na.rm = TRUE)

执行完成后即可得到符合预期的分组均值结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:02