Strptime不能正确地将字符转换为时间.我需要一个regexp首先



我试图将一系列字符数据转换为日期时间。strptime()将所有内容转换为NA

下面是来自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'的错误。

对于如何处理这个问题的任何建议都将是非常感激的。

你需要%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"

最新更新