【问题标题】:R xts: apply over a rolling windowR xts:应用于滚动窗口
【发布时间】:2014-12-03 02:22:35
【问题描述】:

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

附:通常在我使用的固定数量的数据点(例如 100 个)上执行FUN

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

但如果每年的积分数并不总是相同,这显然是行不通的。

【问题讨论】:

    标签: r xts rollapply


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 2019-06-26
        • 2014-06-29
        • 2014-05-11
        • 2019-12-23
        • 1970-01-01
        • 1970-01-01
        • 2013-03-08
        • 2021-10-30
        相关资源
        最近更新 更多