R xts:适用于滚动窗口

时间:2014-12-03 02:22:35

标签: r xts rollapply

我希望在FUN的滚动窗口上执行函数1 year。我的xts每年的积分数不一样。我怎样才能以有效的方式做到这一点?

P.S。通常在我使用的固定数量的数据点(例如100)上执行FUN

as.xts(rollapply(data = zoo(indicator), FUN = FUN, width = 100, align = "right"))

但很明显,如果每年的积分数不总是相同的话,这并不起作用。

2 个答案:

答案 0 :(得分:0)

我会尝试回答我自己的问题:一种方法是:

  1. 首先对NA时间序列进行NA填充,以便每天有一个数据点(或任何与您的案例相关的单位),
  2. (可选,取决于您的FUN)然后使用na.locf来继承最后的数据以填补漏洞。
  3. 最后使用问题中所示的常用rollapply,对应于1年的固定数量的数据点。

答案 1 :(得分:0)

您可以使用 apply.yearly(x, FUN, ...) 库中的 xts 函数。

dat <- xts(rnorm(1000), order.by = as.Date(1:1000))
plot(dat)
apply.yearly(dat, mean)