将因子转换为POSIXct

时间:2015-02-18 18:20:43

标签: r posixct

我有一个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吗?

谢谢

2 个答案:

答案 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"