如何将rollapply/sapply与另一个包中的函数一起使用,您必须为该包定义一些参数
我有下面的向量如何将rollapply/sapply与另一个包中的函数一起使用,您必须为该包定义一些参数,r,R,我有下面的向量 s<-c(-0.1516865068,0.0777125437, 0.0596115942, -0.0066893552, 0.0111096953, 0.0523087458, -0.0376922037, 0.0640068468, 0.0085058973, -0.0059950522, 0.0889039984, 0.0242030489, -0.0777979006, -0.0091988501, 0.0744002004, -0.0343007
s<-c(-0.1516865068,0.0777125437, 0.0596115942, -0.0066893552, 0.0111096953,
0.0523087458, -0.0376922037, 0.0640068468, 0.0085058973, -0.0059950522,
0.0889039984, 0.0242030489, -0.0777979006, -0.0091988501, 0.0744002004, -0.0343007491,
0.0156983014, -0.0601026480, 0.0848964025, -0.1040045470,0.0328945035, -0.0400064460,
-0.0545073955, -0.0214083450, -0.0816092944, 0.1197897561, 0.0709888066,-0.0589121429,
-0.0020130924, -0.0519140419,0.0015850086, -0.0215159408, -0.0315168903, -0.0645178398,
0.0136812107, -0.0961197388, 0.0024793117, 0.0549783622, 0.1498774128, 0.0256764633,
-0.0124244862, 0.0529745643, -0.0709263852, -0.0438273347, -0.0442282842,
-0.0109292336, -0.0118301831, 0.0290688674, 0.1202679179, -0.0881330316,-0.0685339811,
-0.1182349306, -0.0772358800, 0.1094631705, -0.0542377790, -0.0561387285,
0.0630603220, 0.0307593725, 0.0441584230, 0.0601574736, -0.0956434759, -0.0228444254,
0.1257546251, 0.0437536756, 0.1038527261, -0.1235482234, 0.0090508272, 0.0865498777,
-0.0672510718, -0.0219520213,-0.0088529708, -0.0123539203, 0.0323451303, -0.0395558192,
0.0880432313, 0.0126422818, 0.1011413323, -0.0223596172, -0.1004605667,
-0.0113615161,-0.0436624656, -0.0006634151, 0.0170356354, 0.0376346859, 0.0266337364,
0.0501327869, -0.0153681625, -0.0671691120, 0.0525299385, 0.0332289890,-0.0551719605,
0.0532270900, 0.0184261405, -0.0312748089, 0.0636242416, -0.0742767079, -0.0419776574,
0.0608213931, -0.0559795564, 0.0298194941)
我想使用rollapply或sapply from zoo包在滚动窗口上运行上述函数的不同宽度值
rollapply(s, width= ,FUN= , by = )
我想我必须像下面那样编写应用sapply的函数,但是我找不到一种方法来将函数和sapply的参数组合在一起
wide<-c(4,6,12)
for(i in 1:length(wide)){
b<-spectrum(s, method = c("ar"))
c<-sapply(s, width=wide[i],FUN=b, by = 1)
Sp[i] <- c
}
Error en FUN(X[[1L]], ...) : unused arguments (width = 4, by = 1)
wide这就是你想要做的吗
ar <- function(x){ spectrum(x, method = 'ar') }
rollapply(s, width = 12, FUN = ar)
arZ
从未使用过。另外,请阅读以下内容:Edditing the question now我无法重现您使用rollapply
时遇到的错误。在sapply
调用中,sapply
和中的“width”和“by”都不是参数。但是,老实说,我还是不明白你想做什么。如果要在sapply
调用中使用“width”和“by”,则这些参数必须是are
的参数X
在函数中从未使用过。如果是ar同位语对这个问题做了一些重要的修改,因为它被认为是不够的,原则上是不明确的,谢谢你,不过我想传递几个width=数字,这样我就可以同时计算所有的宽度=数字,得到不同的结果。对不起,我在你原来的帖子中没有看到这一点。我以为你想先修复错误
ar <- function(x){ spectrum(x, method = 'ar') }
rollapply(s, width = 12, FUN = ar)
ar <- function(x){ spectrum(x, method = 'ar') }
lapply(1:(length(s)-11), function(i) ar(s[i:(i+11)]) )