如何正确对齐滚动平均值

时间:2016-06-07 17:42:52

标签: r data.table zoo

我正在使用rollmean

library(zoo)
library(TTR)
library(data.table)
date = seq(as.Date("2016-01-01"),as.Date("2016-01-10"),"day")
value =seq(1,10,1)
mydata = data.frame (date, value)
mydata
setDT(mydata)[, paste0('F1',2:3) := lapply(2:3, function(x) rollmean(value, x, fill = rep(NA,x-1),align="right") ),][]

         date value F12 F13
 1: 2016-01-01     1  NA  NA
 2: 2016-01-02     2 1.5  NA
 3: 2016-01-03     3 2.5   2
 4: 2016-01-04     4 3.5   3
 5: 2016-01-05     5 4.5   4
 6: 2016-01-06     6 5.5   5
 7: 2016-01-07     7 6.5   6
 8: 2016-01-08     8 7.5   7
 9: 2016-01-09     9 8.5   8
10: 2016-01-10    10 9.5   9

我希望使用之前的n次观察计算连续的平均值。您可以在上面的数据中看到,F12第二行的平均值是1.5,这是2& 2的平均值。 1.我希望它是NA,并且第1.5行出现在第3行中,以便第3行中F12的平均值为1.5。那可能吗?我尝试更改对齐参数,但没有运气。谢谢。

1 个答案:

答案 0 :(得分:3)

我们可能需要用ARIMA1<-auto.arima(x, d=NA, D=NA, max.p=5, max.q=5, max.P=2, max.Q=2, max.order=5, max.d=2, max.D=1, start.p=2, start.q=2, start.P=1, start.Q=1, stationary=FALSE, seasonal=TRUE, ic=c("aicc", "aic", "bic"), stepwise=TRUE, trace=FALSE, approximation=(length(x)>100 | frequency(x)>12), xreg=NULL, test=c("kpss","adf","pp"), seasonal.test=c("ocsb","ch"), allowdrift=TRUE, allowmean=TRUE, lambda=NULL, biasadj=FALSE, parallel=FALSE, num.cores=2) 包裹它:

shift