在R中:如何在另一个向量指定的不同元素上计算向量内的平均值?

问题描述

假设我们有2个向量:

x <- c(1,2,3,4,5,5)
y <- c(40,228,280,252,211,226,235,240,179,175,197,203,227,258,240)

现在,我想对y中与x中的值相对应的元素求和,然后将它们除以x中出现的次数,以进行相应的存储:

40,239.4,213.25,201,249

例如(228 + 280 + 252 + 211 + 226)/5 = 239.4

如果有人能帮助我,我会很感激。

解决方法

base R解决方案可以为您提供tapply()的帮助:

tapply(y,x,mean)

输出:

   1      2      3      4      5 
 40.00 239.40 213.25 201.00 249.00 

如果要将结果保存到另一个向量中,则可以使用z <- as.vector(tapply(y,mean))