R中具有不同时间窗的移动平均值

cwa*_*rny 7 r

我想在某个时间窗口计算移动平均值,而不是在时间序列的开头生成NA.例如,如果我将时间窗口设置为3,则2个第一个观察将具有NA.我想要的是第一次观察的时间窗口为1,第二次观察的时间窗口为2,然后是所有剩余观察的时间窗口.

我目前的代码:

#example data
x <- c(3,9,2,8,4,6,5,8)
#moving average with time window of length 3
(ma3 <- filter(x,rep(1/3,3),sides=1))
Run Code Online (Sandbox Code Playgroud)

Mat*_*erg 5

我看不到蛮力以外的其他方式:

使用rollapplyfrom zoo而不是filter:

c(x[1], mean(x[1:2]), rollapply(x, width=3, FUN=mean))
Run Code Online (Sandbox Code Playgroud)