年月日と時分秒のセルがわかれたcsvから1つのセルに結合する方法
例えば
Date | Time | Data1 |
---|---|---|
2017/11/14 | 12:34:12 | 0.333 |
2017/11/14 | 12:34:22 | 0.335 |
2017/11/14 | 12:34:32 | 0.343 |
2017/11/14 | 12:34:42 | 0.363 |
こういうcsvファイルのDateとTimeをまとめたい。
csvをデータフレームで読込み,それぞれをPOSIXctにすると
as.POSIXct(data$Date)
#[1] "2017-11-14"
as.POSIXct(data$Time,format="%H:%M:%S")
#[1] "2017-11-14 12:34:12"
こんな感じになり,時分秒には実行した日の日付が入る。
ちなみにPOSIX同士の+演算はできない。
そこで
#列生成
data$DateandTime <- 0
data$sec <- 0
#Timeを秒にする
data$sec <- difftime(as.POSIXct(data$Time,format="%H:%M:%S"),Sys.Date(),units = "sec") + 32400
#Sys.Date()は現在日付の9:00:00
data$DateandTime <- as.POSIXct(data$Date) + data$sec
POSIXct化したTimeから現在の日付を引く。
ただし,Sys.Date()は9:00:00なので32400sec(9時間)を足す。
その後,Dateとsecを足して日時にする。
他にもっと良いやり方がある気がする。
間に合わせではあるが,解決したので備忘録まで