我有一个sql查询的日期作为一个因素而来,我想把它变成一个POSIXct
f<- as.factor("01/03/2014 20:59:30")
f
class(f)
po<-as.POSIXct(f)
po
结果
> f<- as.factor("01/03/2014 20:59:30")
> f
[1] 01/03/2014 20:59:30
Levels: 01/03/2014 20:59:30
> class(f)
[1] "factor"
> po<-as.POSIXct(f)
> po
[1] "0001-03-20 LMT"
你可以看到&#34; 0001-03-20 LMT&#34;是不正确的。你知道怎么把这个因子转换成POSIXct吗?
谢谢
答案 0 :(得分:3)
您只需指定格式,因为您的日期/时间字符串格式非常不规范甚至不明确:
r> as.POSIXct(f,format='%d/%m/%Y %H:%M:%S');
[1] "2014-03-01 20:59:30 EST"
请参阅http://stat.ethz.ch/R-manual/R-devel/library/base/html/as.POSIXlt.html上的文档。
答案 1 :(得分:0)
使用lubridate
library(lubridate)
# month-day-year hour-minute-second
mdy_hms(f, tz="EST")
[1] "2014-01-03 20:59:30 EST"