9

私はstackoverflowを初めて使用し、Rをかなり初めて使用しましたが、長く懸命に検索したため、次の質問に対する答えが見つかりません。

時系列に対する温度のデータ ファイルが多数あります。CSV を ZOO オブジェクトとしてインポートしてから、XTS に変換しています。正しいファイルは次のようになります。

>head(master1)
                       S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650

しかし、一部の時間値はわずかにずれています。つまり、00:00:00 ではなく 23:59:00、または 00:30:00 ではなく 00:29:00 です。

>head(master21)
                       S_21
2010-03-04 23:59:00  -0.593
2010-03-05 00:29:00  -0.908
2010-03-05 00:59:00  -1.034
2010-03-05 01:29:00  -1.223
2010-03-05 01:59:00  -1.349
2010-03-05 02:29:00  -1.538

分単位の違いは分析にとって重要ではなく、最終的にファイルをマージしたいので、これらの時系列を修正したいので、各時系列は同じタイミングである必要があります。

「時系列を1分前にシフトしますが、データ列を変更しないでください(例:S_21)」と言うだけのコマンドが必要です。gsub()簡単な変更で運が良かったので、データを変更する複雑な正規表現を考えましたZOO または XTS に変換される前. lag()andについて読みdiff()ましたが、時系列に関連してデータ値を移動しているようです; 間違っている場合は修正してください.

この問題を解決するための助けをいただければ幸いです。

4

1 に答える 1

11

試す

index(master21) <- index(master21) + 60    # adds a minute

これにより、時間インデックスに 1 分が追加されます。merge()その後、タイムスタンプが揃うように使用できます。

より一般的には、パッケージのビネットzooも役に立ちます。

于 2010-07-11T22:49:46.693 に答える