我有两个数据框,有两种不同的日期格式,第一种是“%d /%m /%Y%H:%M:%S”,第二种是“%Y-%m-%d%H:% M:%S”
我想创建一个通过指示格式转换为POSIXct的函数。
我的代码:
date_func <- function(df){
colnum <- grep("DATE", colnames(df))
df[, (colnum) := lapply(.SD, dmy_hms), .SDcols = colnum]
return(df)
}
对于第一种格式,它可以正常工作,但对于第二种格式,转换后我只有NA值。
那么,如何创建一个无论指定格式转换为POSIXct的函数?
感谢您的帮助。
答案 0 :(得分:1)
包lubridate
提供了以异构格式处理日期/时间的非常好的选项。可以使用parse_date_time
。以OP中指定的格式转换日期/时间的简单示例是:
library(lubridate)
>parse_date_time(c("01/12/2016 01:11:54", "2015-12-31 10:05:11"), c("dmY HMS", "Ymd HMS"))
# [1] "2016-12-01 01:11:54 UTC" "2015-12-31 10:05:11 UTC"