将函数应用于向量的每n个元素

时间:2013-08-25 22:18:51

标签: r function vector

这实际上是一个简单的问题,但我自己无法找到解决方案。

我有一个长度为100的向量。现在我想计算每五个元素的均值。

例如,前五个元素的平均值,后五个元素的平均值,依此类推。

我如何在R?

中完成此任务

2 个答案:

答案 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)