18

欠落している動物園の時系列があります。それを埋めて連続シリーズを作るために...

最初から最後まで chron 日時シーケンスを生成します。

シリーズをこれに統合します。

na.locf を使用して、NA を las 観測に置き換えます。

シンセティック chron シーケンスを削除します。

同じことをもっと簡単にできますか?たぶん、周波数に関連するいくつかのインデックス関数で?

4

2 に答える 2

8

インデックス付きの「空の」zooオブジェクトを使用すると、少し簡単になります。

> x <- zoo(1:10,Sys.Date()-10:1)[c(1,3,5,7,10)]
> empty <- zoo(order.by=seq.Date(head(index(x),1),tail(index(x),1),by="days"))
> na.locf(merge(x,empty))
2010-08-14 2010-08-15 2010-08-16 2010-08-17 2010-08-18 
         1          1          3          3          5 
2010-08-19 2010-08-20 2010-08-21 2010-08-22 2010-08-23 
         5          7          7          7         10 

編集:日中のデータの場合(ガボールの優れたxout=提案を使用):

> index(x) <- as.POSIXct(index(x))
> na.locf(x, xout=seq(head(index(x),1),tail(index(x),1),by="15 min"))
于 2010-08-24T13:12:50.393 に答える
7

これは、zoo FAQ http://cran.r-project.org/web/packages/zoo/vignettes/zoo-faq.pdfの質問 13 で説明されています。この質問では、na.locf の xout= 引数を使用してマージ ステップを省略しています。 . この機能は最近追加されたため、zoo 1.6.4 以降を使用していることを確認してください。

于 2010-08-24T16:19:21.227 に答える