n*****1 发帖数: 172 | 1 请问如何create一个vector, 里面的element是对应group的mean? 另外, data 比较大,
不知道有什么比较efficient的方
法?
例如:
id X
1 1
1 2
1 3
2 7
2 8
2 9
2 10
2 11
变成:
id X Mean
1 1 2
1 2 2
1 3 2
2 7 9
2 8 9
2 9 9
2 10 9
2 11 9
谢谢! | i********f 发帖数: 206 | 2 假设你的数据在data里面
uni <- unique(data$id)
data$Mean <- 0
for (i in 1:length(uni)) {
data$Mean[(data$id == uni[i])] <- mean(data[(data$id == uni[i]),"X"])
}
大,
【在 n*****1 的大作中提到】 : 请问如何create一个vector, 里面的element是对应group的mean? 另外, data 比较大, : 不知道有什么比较efficient的方 : 法? : 例如: : id X : 1 1 : 1 2 : 1 3 : 2 7 : 2 8
| q**j 发帖数: 10612 | 3 > mean=aggregate(data$x,by=list(data$id),"mean")
> mean
Group.1 x
1 1 2.0
2 2 8.5
> names(mean)=c("id","mean")
> merge(data,mean)
id x mean
1 1 1 2.0
2 1 2 2.0
3 1 3 2.0
4 2 7 8.5
5 2 8 8.5
6 2 9 8.5
7 2 10 8.5
【在 i********f 的大作中提到】 : 假设你的数据在data里面 : uni <- unique(data$id) : data$Mean <- 0 : for (i in 1:length(uni)) { : data$Mean[(data$id == uni[i])] <- mean(data[(data$id == uni[i]),"X"]) : } : : 大,
| s*r 发帖数: 2757 | | n*****1 发帖数: 172 | |
|