假设我在 R 中有这个 data.frame:
ages <- data.frame(Indiv = numeric(),
Age = numeric(),
W = numeric())
ages[1,] <- c(1,10,2)
ages[2,] <- c(1,15,5)
ages[3,] <- c(2,5,1)
ages[4,] <- c(2,100,2)
ages
Indiv Age W
1 1 10 2
2 1 15 5
3 2 5 1
4 2 100 2
如果我做:
meanAge <- aggregate(ages$Age,list(ages$Indiv),mean)
我得到每个 Indiv (Group.1) 的平均年龄 (x):
Group.1 x
1 1 12.5
2 2 52.5
但我想计算年龄的加权算术平均值(体重为 W)。如果我做:
WmeanAge <- aggregate(ages$Age,list(ages$Indiv),weighted.mean,ages$W)
我得到:
Error in weighted.mean.default(X[[1L]], ...) :
'x' and 'w' must have the same length
我想我应该有:
Group.1 x
1 1 13.57142857
2 2 68.33333333
我究竟做错了什么?提前致谢!