R 获取id组中的平均值

R 获取id组中的平均值,r,R,可能重复: 问题是,我从CSV文件加载了以下数据: id value2 value3 1.000 0.010 14 1.000 0.019 15 0.995 0.024 13 0.995 0.031 20 0.990 0.012 13 ..... 我想计算id组中value2和value3的平均值/中值等。之后,计划能够按照value2或value3对结果进行排

可能重复:

问题是,我从CSV文件加载了以下数据:

id      value2  value3
1.000   0.010   14        
1.000   0.019   15        
0.995   0.024   13        
0.995   0.031   20        
0.990   0.012   13        
.....
我想计算id组中value2和value3的平均值/中值等。之后,计划能够按照value2或value3对结果进行排序

有没有办法完成这样的任务


提前感谢。

假设您在名为df的数据框中有数据,您可以执行以下操作:

sapply(split(df[-1], df$id), sapply, mean)

这是数据表星期天!这将很好地扩展大数据-快速高效

> library(data.table)
> DT <- as.data.table(df)
> DT[, list(val2=mean(value2), val3=mean(value3)), by=id]
      id   val2 val3
1: 1.000 0.0145 14.5
2: 0.995 0.0275 16.5
3: 0.990 0.0120 13.0

重复的问题可能不是一个完美的匹配,但这是一个非常基本的问题,以前在这里被问过很多次。聚合、tapply、split以及plyr包中的Lappy/sapply和/或ddply都可以完成您想要做的事情。
> library(data.table)
> DT <- as.data.table(df)
> DT[, list(val2=mean(value2), val3=mean(value3)), by=id]
      id   val2 val3
1: 1.000 0.0145 14.5
2: 0.995 0.0275 16.5
3: 0.990 0.0120 13.0