【发布时间】:2020-02-06 11:42:46
【问题描述】:
如何将zoo:rollapply 函数的width 参数传递给rollapply 内调用的FUN 函数?
我将值和宽度作为相同data.frame 的列:
library(zoo)
a = data.frame(v = 1:10, w = c(2,1,3,5,2,7,3,2,1,3))
# v w
# 1 1 2
# 2 2 1
# 3 3 3
# 4 4 5
# 5 5 2
# 6 6 7
# 7 7 3
# 8 8 2
# 9 9 1
# 10 10 3
我能做到:
rollapply(a$v, a$w, function(x) sum(x), partial=T)
这给出了:
[1] 3 2 9 20 11 42 21 17 9 19
现在我想在计算中使用a$v 的每个滚动窗口a$w 的对应值。例如:
rollapply(a$v, a$w, function(x) sum(x) + a$w[1], partial=T)
但不是将a$w[1] 作为一个常数值(这里,它只是将上面的值加 2),我想使用每次对应于a$w 的a$w 中的值(即,在a 的同一行)。
因此期望的输出是:
[1] 5 3 12 25 13 49 24 19 10 22
【问题讨论】: