今回対象とするデータは以下のようなもの
> head(df) Time Temperature Humidity CO2 Soil.Moisture 1 22 20.7 79 380 80 2 44 20.7 80 380 87 3 66 20.7 80 396 88 4 88 20.6 79 399 87 5 110 20.6 79 399 87 6 132 20.6 79 399 87
ミリ秒のPOSIXtimeへの変換はここを参考に。
stackoverflow.com
format(as.POSIXct(origin = "2022-01-18",df[[1]]/1000),"%H:%M:%OS3")
上記はformat()しているが、POSIXct型データ自体は以下で変換できる。
as.POSIXct(origin = "2022-01-18",df[[1]]/1000)
非周期的な計測時間をもつデータフレームをtsオブジェクトに変換するのはここを参考に。xtsライブラリを使う。
stackoverflow.com
補足すると、DF[-1]は最初の列(計測時間=ミリ秒)をドロップしている。
DF1はその削除した列(計測時間)のこと。
すなわちxts()の引数はxts("ミリ秒以外のデータ列本体", "時間ラベル")
library(xts) x <- xts(DF[-1], DF[[1]])
以上をまとめると、
ms_posix <- as.POSIXct(origin = "2022-01-18",df[[1]]/1000) x <- xts(df[-1],ms_posix) plot(x)
凡例を出したいのでやり方を調べる。
以下に書いてあった。
www.rdocumentation.org
plot(x, legend.loc="center")
なんと美しいグラフ