这实际上是一个简单的问题,但我自己无法找到解决方案。
我有一个长度为100的向量。现在我想计算每五个元素的均值。
例如,前五个元素的平均值,后五个元素的平均值,依此类推。
我如何在R?
中完成此任务答案 0 :(得分:3)
如下:
> x <- 1:100
> tapply(x, rep(1:(length(x)/5), each = 5), mean)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
3 8 13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93 98
坚持rep
,但试图满足@ Ferdinand.kraft,有一个不太漂亮但仍然非常人性化的解决方案:
tapply(x, rep(1:ceiling(length(x)/5), each = 5, length.out = length(x)), mean)
答案 1 :(得分:2)
使用此:
aggregate(x, by=list(0:(length(x)-1) %/% 5), mean)