我正在尝试使用来自tseries包中的函数rollapply
的zoo包中的maxdrawdown
:
library(zoo)
library(tseries)
x <- c(1,2,4,6,7,10,8,6,5,4,6,7,8)
y <- zoo(x)
z <- rollapply(y,3,maxdrawdown,fill=NA,align="right")
但是我收到此错误消息:
Error in zoo(rval, index(x)[i]) :
“x” : attempt to define invalid zoo object
这是否意味着我无法在功能rollapply
上使用maxdrawdown
?是否有其他解决方案来解决这个问题?
答案 0 :(得分:3)
maxdrawdown
会返回一个列表,但我们只想要该列表中的maxdrawdown
组件,请尝试以下操作:
rollapplyr(y, 3, function(x) maxdrawdown(x)$maxdrawdown, fill = NA)