rollapply 与“增长”窗户
伙计们,通常当您执行以下操作时:
tmp = zoo(rnorm(100), 1:100)
rollapply(tmp, 10, function(x) quantile(x, 0.05), align="right")
非常正确 rollapply
将从 10 个可用元素开始计算值。
不幸的是,我需要为前 10 个观察使用尽可能多的数据,本质上是一个不断增长的数据窗口,直到有足够的数据来使用滑动窗口,例如 1、1:2、1:3、1:4 等直到我们有至少 10 个元素,然后像往常一样滑动窗口。
有没有比丑陋的 for 循环更好的方法来做到这一点?
Guys, normally when you do something like:
tmp = zoo(rnorm(100), 1:100)
rollapply(tmp, 10, function(x) quantile(x, 0.05), align="right")
Quite rightly rollapply
will start calculating the value from the moment 10 elements are available.
Unfortunately I need something that uses as much data as possible for the fist 10 observations, essentially a growing window of data till there is enough data to use a sliding window, e.g. 1, 1:2, 1:3, 1:4, etc. till we have at least 10 elements and then slide the window as usual.
Is there a better way to do this than an ugly for loop?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
动物园中的
rollapply
可以通过指定partial=TRUE
来实现,例如rollapply
in zoo can do that by specifyingpartial=TRUE
, e.g.为什么不在开始时就用 9 个 NA 填充该系列呢?绝对比“丑陋的循环”更好:
Why not just pad the series with 9 NAs at the beginning? Definitely better than "ugly for loops":