2

この単純なコードを実行すると:

my_xts <- .xts(1:10*1,1:10)
rollapply(my_xts, list(seq(-2, 0)), sum, partial = 1)

xts (0.9-3) の新しいバージョンでは、次のようになります。

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

古いxts(0.8-6)ではスムーズに動作します。

オプションの幅に関係しているようです。のビネットのようにrollapply、「幅は、現在の時間と比較したオフセットと見なされるリストにすることができます」。新しいバージョンでは、これは不可能です。

回避策はありますか?rollapply古い動作を実現するために、別の方法で呼び出す可能性はありますか?

4

1 に答える 1

1

rollapply.xtsバージョン 0.8-9 まで S3 メソッドとして登録されていませんでした。そのため、これは以前はうまくいきました。xts S3 メソッドがなかったので、rollapply.zooディスパッチされ、zoo オブジェクト (xts オブジェクトではない) が返されます。

rollapply.xtsは現在サポートしていませんwidth=list(...)が、 を呼び出す前に xts オブジェクトを Zoo オブジェクトに変換することで、以前と同じ結果を得ることができますrollapply

rollapply(as.zoo(my_xts), list(seq(-2, 0)), sum, partial = 1)
于 2013-01-29T14:40:55.953 に答える