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

如何按Item ID对多维度数据分组求均值?(R语言)

按Item ID分组计算多维度数据均值的简洁方法

你需要对带有Item ID的多维度数据按ID分组,分别计算各维度的均值,以下是两种实用的R实现方法:

输入数据示例

Item IDTasteColour
ID143
ID143
ID122
ID143
ID232
ID234
ID223
ID342
ID332
ID343
ID334

期望输出

Item IDTasteColour
ID13.52.75
ID22.673
ID33.52.75

方法1:使用dplyr包(简洁直观,适合tidyverse工作流)

先构造示例数据框(实际使用时替换为你的数据):

df <- data.frame(
  Item_ID = c("ID1", "ID1", "ID1", "ID1", "ID2", "ID2", "ID2", "ID3", "ID3", "ID3", "ID3"),
  Taste = c(4,4,2,4,3,3,2,4,3,4,3),
  Colour = c(3,3,2,3,2,4,3,2,2,3,4)
)

加载dplyr并计算分组均值:

library(dplyr)

# 按Item_ID分组,对指定维度列计算均值并保留2位小数
result <- df %>%
  group_by(Item_ID) %>%
  summarise(
    across(c(Taste, Colour), ~round(mean(.), 2))
  )

print(result)

如果有6个维度,只需将c(Taste, Colour)替换为所有目标列名,比如c(Taste, Colour, Dim3, Dim4, Dim5, Dim6)。

方法2:使用基础R的aggregate函数(无需额外安装包)

直接用基础R函数实现,适合不想加载第三方包的场景:

# 构造数据框(同上)
df <- data.frame(
  Item_ID = c("ID1", "ID1", "ID1", "ID1", "ID2", "ID2", "ID2", "ID3", "ID3", "ID3", "ID3"),
  Taste = c(4,4,2,4,3,3,2,4,3,4,3),
  Colour = c(3,3,2,3,2,4,3,2,2,3,4)
)

# 按Item_ID分组计算均值,保留2位小数
result_base <- aggregate(. ~ Item_ID, data = df, FUN = function(x) round(mean(x), 2))

print(result_base)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:07:50