1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

年月日と時分秒が別れたcsvをPOSIXct形式で結合する

Last updated at Posted at 2016-11-14

年月日と時分秒のセルがわかれた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を足して日時にする。

他にもっと良いやり方がある気がする。
間に合わせではあるが,解決したので備忘録まで

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?