Reputation: 89
If I run this simple code:
my_xts <- .xts(1:10*1,1:10)
rollapply(my_xts, list(seq(-2, 0)), sum, partial = 1)
In the new version of xts (0.9-3), I get:
Error in rollapply.xts(my_xts, list(seq(-2, 0)), sum, partial = 1) :
(list) object cannot be coerced to type 'integer'
In addition: Warning message:
In rollapply.xts(my_xts, list(seq(-2, 0)), sum, partial = 1) :
partial argument is not currently supported
While in the old xts (0.8-6) runs smoothly.
Seems it is related with the option width. As in the vignette of rollapply
, "width can be a list regarded as offsets compared to the current time". In the new version this cannot be possible.
Any workaround? Is there a possibility to call rollapply
in a different way, in order to achieve the old behaviour?
Upvotes: 2
Views: 1154
Reputation: 176718
rollapply.xts
wasn't registered as an S3 method until version 0.8-9. That's why this worked for you previously. Since there wasn't an xts S3 method, rollapply.zoo
would have been dispatched, which would have returned a zoo object (not an xts object).
rollapply.xts
currently does not support width=list(...)
, but you can get the same results you did previously by converting your xts object to a zoo object before calling rollapply
.
rollapply(as.zoo(my_xts), list(seq(-2, 0)), sum, partial = 1)
Upvotes: 1