R - 如何对来自其他软件包的函数使用rollapply,例如来自tseries的maxdrawdown?

时间:2012-08-13 21:53:28

标签: r zoo

我正在尝试使用来自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?是否有其他解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:3)

maxdrawdown会返回一个列表,但我们只想要该列表中的maxdrawdown组件,请尝试以下操作:

rollapplyr(y, 3, function(x) maxdrawdown(x)$maxdrawdown, fill = NA)