現時点では、日付とデータしか持っていないように見えますが、追加したい関連する時間を知っています。これを 1 行で実行できる非常にコンパクトなメソッドがzoo パッケージに含まれている可能性がありますが、ここでは、2 日間で 2 時間間隔で (時間ラベルなしで) データを読み取り、広い範囲から再構築する 5 または 6 ステップのプロセスを示す実際の例を示します。 DateTime クラスの時刻変数を使用して、datafrm を長い形式の datafrm にフォーマットします。
require(reshape2)
txt<-"01-Nov,123,345,456,345,565,345,464,345, 123,345,456,345
02-Nov,234,567,890,345,565,345,464,345, 123,345,456,345"
tstdf <- read.table(textConnection(txt), header=FALSE, sep=",")
mtst <- melt(tstdf, id.vars="V1",variable_name="time")
mtst$dt <- as.Date(mtst$V1, format="%d-%B")
mtst <- cbind(mtst, tm= 120*(0:11) )
mtst$dt.tm <- as.POSIXct(mtst$dt) +60*120*(0:11)
'data.frame': 24 obs. of 6 variables:
$ V1 : Factor w/ 2 levels " 02-Nov","01-Nov": 2 1 2 1 2 1 2 1 2 1 ...
$ time : Factor w/ 12 levels "V2","V3","V4",..: 1 1 2 2 3 3 4 4 5 5 ...
$ value: int 123 234 345 567 456 890 345 345 565 565 ...
$ dt :Class 'Date' num [1:24] 14914 14915 14914 14915 14914 ...
$ tm : num 0 120 240 360 480 600 720 840 960 1080 ...
$ dt.tm: POSIXct, format: "2010-10-31 20:00:00" "2010-11-01 22:00:00" ...
tm= の割り当てを 15*(0:95) に変更すると、私は米国東部の tz にいるため、表示される時刻に 4 時間のずれが生じます。時刻を真夜中に表示したい場合は、UCT の既定値に 4 時間のオフセットを追加できます。
mtst$dt.tm <- as.POSIXct(mtst$dt, tz="EST") +60*120*(0:11) + 60*240