【问题标题】:rollapply: fix the starting observation in each sliding window?rollapply:修复每个滑动窗口中的起始观察?
【发布时间】:2015-03-23 15:28:01
【问题描述】:

简单的动物园对象是

z <- zoo(11:15, as.Date(31:45))
as.data.frame(z) 
            z
1970-02-01 11
1970-02-02 12
1970-02-03 13
1970-02-04 14
1970-02-05 15
1970-02-06 11
1970-02-07 12
1970-02-08 13
1970-02-09 14
1970-02-10 15
1970-02-11 11
1970-02-12 12
1970-02-13 13
1970-02-14 14
1970-02-15 15
as.data.frame(rollapply(z, width=3, mean, align="right"))
           rollapply(z, width = 3, mean, align = "right")
1970-02-03                                       12.00000
1970-02-04                                       13.00000
1970-02-05                                       14.00000
1970-02-06                                       13.33333
1970-02-07                                       12.66667
1970-02-08                                       12.00000
1970-02-09                                       13.00000
1970-02-10                                       14.00000
1970-02-11                                       13.33333
1970-02-12                                       12.66667
1970-02-13                                       12.00000
1970-02-14                                       13.00000
1970-02-15                                       14.00000

是否有可能使开始观察是固定的,即在日期“1970-02-04”,我们的平均值超过 '11、12、13、14' 而不是超过 '12、13、14' 等等?当然可以通过循环来完成,但如果问题有点复杂,循环会非常慢,我正在寻找与applyrollapply 一样快的东西。

【问题讨论】:

    标签: r zoo rollapply


    【解决方案1】:

    设置宽度等于系列的长度并使用partial = TRUE

    rollapplyr(z, length(z), mean, partial = TRUE)
    

    你也可以使用cumsum(z) / seq_along(z)

    【讨论】:

    • 第一个更好,因为我需要估计左端固定的回归,所以第一个选项正是需要的。它足够灵活。
    猜你喜欢
    • 2012-10-20
    • 2020-11-23
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多