不明白rollapply在做什么
我没有看到z和rollappy()函数调用之间的联系。我的假设是,我有一个向量,两个长(1:2),覆盖在z内的每个观测值上,通过我的函数和聚集 z中的第一个号码是1,我呼叫的第一个号码也是1。好的,有道理,1和0的和就是1 z中的第二个实例是2,rollapply中的第二个结果是5。我可以看到z中第二个和第三个项目的总和是5,但如果是这样,那么rollapply的第三个结果不是3+4=7,而是3。第三种情况下,我的rollapply调用如何返回3不明白rollapply在做什么,r,zoo,R,Zoo,我没有看到z和rollappy()函数调用之间的联系。我的假设是,我有一个向量,两个长(1:2),覆盖在z内的每个观测值上,通过我的函数和聚集 z中的第一个号码是1,我呼叫的第一个号码也是1。好的,有道理,1和0的和就是1 z中的第二个实例是2,rollapply中的第二个结果是5。我可以看到z中第二个和第三个项目的总和是5,但如果是这样,那么rollapply的第三个结果不是3+4=7,而是3。第三种情况下,我的rollapply调用如何返回3 r到底在这里干什么 窗口的宽度在1和2之间交替。
r到底在这里干什么 窗口的宽度在1和2之间交替。结果是1,然后是2+3,然后是3,然后是4+5,然后是5 下面是窗口宽度为1(第1列)和窗口宽度为2(第2列)的
rollappy
输出。你可以看到它只是在这两者之间交替出现
rollapply(z, 1:2, sum, align = "left")
1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
1 5 3 9 5
如果两者都需要,并且希望保留属性,可以使用lappy
sapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [,1] [,2]
# [1,] 1 3
# [2,] 2 5
# [3,] 3 7
# [4,] 4 9
# [5,] 5 NA
lapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [[1]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 1 2 3 4 5
#
# [[2]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 3 5 7 9 NA
如果将较大的向量作为第二个参数提供给rollapply
sapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [,1] [,2]
# [1,] 1 3
# [2,] 2 5
# [3,] 3 7
# [4,] 4 9
# [5,] 5 NA
lapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [[1]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 1 2 3 4 5
#
# [[2]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 3 5 7 9 NA
窗口的宽度在1和2之间交替。结果是1,然后是2+3,然后是3,然后是4+5,然后是5 下面是窗口宽度为1(第1列)和窗口宽度为2(第2列)的
rollappy
输出。你可以看到它只是在这两者之间交替出现
rollapply(z, 1:2, sum, align = "left")
1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
1 5 3 9 5
如果两者都需要,并且希望保留属性,可以使用lappy
sapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [,1] [,2]
# [1,] 1 3
# [2,] 2 5
# [3,] 3 7
# [4,] 4 9
# [5,] 5 NA
lapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [[1]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 1 2 3 4 5
#
# [[2]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 3 5 7 9 NA
如果将较大的向量作为第二个参数提供给rollapply
sapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [,1] [,2]
# [1,] 1 3
# [2,] 2 5
# [3,] 3 7
# [4,] 4 9
# [5,] 5 NA
lapply(1:2, function(w) rollapply(z, w, sum, align = 'left', fill = NA))
# [[1]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 1 2 3 4 5
#
# [[2]]
# 1970-01-01 1970-01-02 1970-01-03 1970-01-04 1970-01-05
# 3 5 7 9 NA