これは、データ ロガーから生データをインポートするときによく発生する問題です。温度ロガーは 10 分ごとに温度を記録するように設定されており、別のガス ロガーは最後の 10 分間に使用されたガスを記録するように設定されています。これら 2 つのロガーからのデータをプロットと分析のために 1 つのデータ フレームに結合したいのですが、時間が正確に一致していません。10 分ごとにデータ フレームに 1 行を作成し、datetime で期間の開始を示します。
温度ロガーのデータは次のようになります。
datetime temperature 2010-09-30 06:58:53 78.996 2010-09-30 07:08:53 78.645 2010-09-30 07:18:53 78.514 2010-09-30 07:28:53 79.173 2010-09-30 07:38:53 78.602
ガスロガーのデータは次のようになります。
datetime gas 2010-09-30 13:45:00 0 2010-09-30 13:55:00 1 2010-09-30 14:05:00 0 2010-09-30 14:15:00 4 2010-09-30 14:25:00 2
結合されたデータが次のようになるように、10 分間隔で 2 つのデータ フレームを結合します。
datetime temperature gas 2010-09-30 13:40:00 NA 0 2010-09-30 13:50:00 78.996 1 2010-09-30 14:00:00 78.645 0 2010-09-30 14:10:00 78.514 4 2010-09-30 14:20:00 79.173 2 2010-09-30 07:38:53 78.602 NA
これら 2 つのデータ フレームを取得するコードを次に示します。
temps <- data.frame(datetime=c("2010-09-30 06:58:53",
"2010-09-30 07:08:53","2010-09-30 07:18:53",
"2010-09-30 07:28:53","2010-09-30 07:38:53"),
temperature=c(78.996,78.645,78.514,79.173,78.602),
stringsAsFactors=FALSE)
temps$datetime <- strptime(temps$datetime, format="%Y-%m-%d %H:%M:%S")
gas <- data.frame(datetime=c("2010-09-30 13:45:00",
"2010-09-30 13:55:00","2010-09-30 14:05:00",
"2010-09-30 14:15:00","2010-09-30 14:25:00"),
gas=c(0,1,0,4,2),stringsAsFactors=FALSE)
gas$datetime <- strptime(temps$datetime, format="%Y-%m-%d %H:%M:%S")