R 获取id组中的平均值
可能重复: 问题是,我从CSV文件加载了以下数据: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对结果进行排
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