7

約 5 分ごとに記録された測定値があります。

2012-07-09T05:30:01+02:00   1906.1  1069.2  1093.2  3   1071.0  1905.7  
2012-07-09T05:35:02+02:00   1905.7  1069.2  1093.0  0   1071.5  1905.7  
2012-07-09T05:40:02+02:00   1906.1  1068.7  1093.2  0   1069.4  1905.7  
2012-07-09T05:45:02+02:00   1905.7  1068.4  1093.0  1   1069.6  1905.7  
2012-07-09T05:50:02+02:00   1905.7  1068.2  1093.0  4   1073.3  1905.7  

最初の列はデータのタイムスタンプです。残りの列は記録されたデータです。

15 分ごとに 1 行になるように、データを再サンプリングする必要があります。たとえば、次のようになります。

2012-07-09T05:15:00 XX XX XX XX XX XX
2012-07-09T05:30:00 XX XX XX XX XX XX
....

(さらに、記録されたデータにギャップがある可能性があり、たとえば 1 時間以上のギャップがNA値の行に置き換えられることを望みます。)

これを手動でプログラムする方法はいくつか考えられますが、R でそのようなことを行うための組み込みサポートはありますか? 時系列データ ( など) を処理するためのさまざまなライブラリを見てきましたが、zoo満足chronのいくものは見つかりませんでした。

4

4 に答える 4

7

approxまたは関連する を使用できますapproxfun。Iftはデータがサンプリングされた時点で構成されるベクトルであり、ifyはデータを含むベクトルであり、時点間のデータ ポイントを線形補間f <- approxfun(t,y)する関数を作成します。f

例:

# irregular time points at which data was sampled
t <- c(5,10,15,25,30,40,50)
# measurements 
y <- c(4.3,1.2,5.4,7.6,3.2,1.2,3.7)

f <- approxfun(t,y)

# get interpolated values for time points 5, 20, 35, 50
f(seq(from=5,to=50,by=15))
[1] 4.3 6.5 2.2 3.7
于 2015-09-14T15:46:07.170 に答える
-5

時系列データを扱うための「ツール」がたくさんある openair パッケージを見てください。

于 2012-10-25T15:41:05.653 に答える