我正在尝试将一系列字符数据转换为日期时间。 strptime()正在将每一个转变为NA
s。
以下是data.table中的一些数据:
head(dt$time2)
[1] "4/3/2012 16:00" "4/3/2012 17:00" "4/3/2012 18:00" "4/3/2012 19:00" "4/3/2012 20:00"
[6] "4/3/2012 21:00"
我尝试转换时:
dt[,time2:=as.POSIXct(strptime(dt$time2, "%m/%d/%y %H:%M:%S"))]
我为所有dt$time2
结束了NA。如果我不使用%S
,由于字符数据中缺少该信息,我收到有关Coerced 'list' RHS to 'character'
的错误。
任何有关如何处理这一问题的建议都将非常受欢迎。
答案 0 :(得分:2)
你需要%Y而不是%y。
> dt <- c("4/3/2012 16:00", "4/3/2012 17:00", "4/3/2012 18:00","4/3/2012 19:00", "4/3/2012 20:00","4/3/2012 21:00")
> dt_t <- as.POSIXct(strptime(dt,"%m/%d/%Y %H:%M"))
> dt_t
[1] "2012-04-03 16:00:00 CDT" "2012-04-03 17:00:00 CDT" "2012-04-03 18:00:00 CDT" "2012-04-03 19:00:00 CDT"
[5] "2012-04-03 20:00:00 CDT" "2012-04-03 21:00:00 CDT"