计算非重叠移动平均值

4
我将尝试在R中计算时间序列的移动平均值,但我得到的结果并不成功。
下面是我的操作步骤:
样本向量:
library(gtools)
test <- sample(1:100, 50)

testrunning <- running(test, width=10, by=10, FUN=mean, trim=0, na.rm=TRUE)

它会产生一个结果,但这个结果不是我数据中窗口的平均值,而是窗口内数值的平均值。就像这样:

testrunning

## 1:10 11:20 21:30 31:40 41:50 
## 5.5  15.5  25.5  35.5  45.5 

running 在一个包中吗? - Rich Scriven
@RichardScriven 抱歉 - 我进行了编辑。它在 gtools 包中。 - DoctorSpruce
1个回答

6

我想我找到了问题所在。应该使用 fun 而不是 FUN:

running(test, width = 10, by = 10, fun = mean, trim = 0, na.rm = TRUE)

您还可以这样做:
sapply(split(test, (seq_along(test) - 1) %/% 10), mean) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接