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

如何在R中按类别聚合价格均值并生成新数据集?

解决aggregate计算分组均值的问题

咱们来搞定这个问题~你用aggregate做分组均值的思路是对的,大概率是细节上的小问题导致没拿到预期结果。下面一步步来修正:

先确认数据状态

首先可以快速检查你的分组变量和数据是否有异常:

# 确认class列只有1、2、3三个值
unique(data1$class)
# 检查Price列是否存在NA值(NA会直接让均值变成NA)
sum(is.na(data1$Price))

两种修正后的可行写法

写法1:优化你原有的代码

你原来的代码运行后,结果的列名会是Group.1和x,这可能不是你想要的清晰命名。我们可以给分组列指定名称,同时加上na.rm=TRUE避免NA干扰计算:

classdata <- aggregate(
  x = data1$Price,
  by = list(class = data1$class),  # 给分组列命名为class
  FUN = mean,
  na.rm = TRUE  # 若Price有NA必须加,否则均值会返回NA
)
# 可选:把均值列重命名得更直观
colnames(classdata) <- c("class", "mean_price")

写法2:用公式语法(更常用易读)

R的aggregate支持公式写法,这种方式更符合R的常规风格,结果的列名直接就是class和Price(对应均值):

classdata <- aggregate(
  Price ~ class,  # 格式:待计算均值的列 ~ 分组列
  data = data1,
  FUN = mean,
  na.rm = TRUE
)

结果验证

运行完上面任意一段代码后,查看classdata就能得到你预期的结果:3行数据,每行对应class的1、2、3,以及该类别的Price均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 18:07:53