R得到每第n行的平均值

时间:2015-05-14 01:34:47

标签: r matrix apply sapply

是否有更优雅的方法来获得当前到第n行的平均值?例如,

x=replicate(3, rnorm(20))

我想要的是获得每行+ 2行的第2列的平均值。我目前这样做的方法是1)创建一个空列2)遍历每一行并从前两行获取值,表示它,然后将其存储在新列中。这很乏味,所以我想知道是否有更干净,更快的方法?提前致谢。 ahdee

2 个答案:

答案 0 :(得分:2)

尝试filter - 你正在做的是一个滚动的意思。

filter(x[,2], rep(1/3,3), sides=1)

答案 1 :(得分:2)

感谢thelatemail我想要的是一个滚动的意思。我找到了解决方案。

library(zoo)
x=replicate(3, rnorm(20))

rollapply(x[,2], 2, mean, na.pad = 1, align="right")