在 R 中:如何计算一个向量内由另一个向量指定的不同元素的平均值?
In R: How do I calculate the averages within a vector over different elements specified by another vector?
假设我们有 2 个向量:
x <- c(1,2,2,2,2,2,3,3,4,3,4,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, x, mean))
假设我们有 2 个向量:
x <- c(1,2,2,2,2,2,3,3,4,3,4,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, x, mean))