将带有时间戳的字符日期转换为 class "POSIXct" "POSIXt"
Convert character date with timestamp to class "POSIXct" "POSIXt"
我有两个 data.tables 我正在尝试通过日期列合并,现在我的第一个 data.table 的日期列是 class "POSIXct" "POSIXt" 并具有以下格式:
> DT1[,.(study_date)]
study_date
1: 2008-02-13 08:44:01
2: 2009-03-22 10:18:58
3: 2009-03-27 12:01:28
4: 2009-04-21 09:02:33
5: 2009-11-02 08:38:52
---
230656: 2009-05-26 15:42:58
230657: 2011-03-29 17:05:06
230658: 2012-01-20 15:28:53
230659: 2016-02-17 14:19:14
230660: 2012-11-23 07:10:09
> DT1[,class(study_date)]
[1] "POSIXct" "POSIXt"
我的第二个 data.table 的日期列是 class 字符,格式如下:
> DT2[,.(study_date)]
study_date
1: 13FEB2008:08:44:01
2: 22MAR2009:10:18:58
3: 22MAR2009:10:18:58
4: 27MAR2009:12:01:28
5: 27MAR2009:12:01:28
---
298011: 29MAR2011:17:05:06
298012: 20JAN2012:15:28:53
298013: 17FEB2016:14:19:14
298014: 23NOV2012:07:10:09
298015: 23NOV2012:07:10:09
理想情况下,我想使用 lubridate 来更改 DT2 的日期 class 和格式,以匹配 DT1 中日期的格式和 class。
哪种方法是转换 DT2 中的日期以匹配 DT1 中日期的格式和 class 的最佳方法?
加上lubridate
,可以是dmy_hms
library(data.table)
library(lubridate)
DT2[, study_date := dmy_hms(study_date)]
或使用as.POSIXct
DT2[, study_date := as.POSIXct(study_date, format = '%d%b%Y:%H:%M:%S')]
我有两个 data.tables 我正在尝试通过日期列合并,现在我的第一个 data.table 的日期列是 class "POSIXct" "POSIXt" 并具有以下格式:
> DT1[,.(study_date)]
study_date
1: 2008-02-13 08:44:01
2: 2009-03-22 10:18:58
3: 2009-03-27 12:01:28
4: 2009-04-21 09:02:33
5: 2009-11-02 08:38:52
---
230656: 2009-05-26 15:42:58
230657: 2011-03-29 17:05:06
230658: 2012-01-20 15:28:53
230659: 2016-02-17 14:19:14
230660: 2012-11-23 07:10:09
> DT1[,class(study_date)]
[1] "POSIXct" "POSIXt"
我的第二个 data.table 的日期列是 class 字符,格式如下:
> DT2[,.(study_date)]
study_date
1: 13FEB2008:08:44:01
2: 22MAR2009:10:18:58
3: 22MAR2009:10:18:58
4: 27MAR2009:12:01:28
5: 27MAR2009:12:01:28
---
298011: 29MAR2011:17:05:06
298012: 20JAN2012:15:28:53
298013: 17FEB2016:14:19:14
298014: 23NOV2012:07:10:09
298015: 23NOV2012:07:10:09
理想情况下,我想使用 lubridate 来更改 DT2 的日期 class 和格式,以匹配 DT1 中日期的格式和 class。
哪种方法是转换 DT2 中的日期以匹配 DT1 中日期的格式和 class 的最佳方法?
加上lubridate
,可以是dmy_hms
library(data.table)
library(lubridate)
DT2[, study_date := dmy_hms(study_date)]
或使用as.POSIXct
DT2[, study_date := as.POSIXct(study_date, format = '%d%b%Y:%H:%M:%S')]