将因子转换为 POSIXct

Convert factor to 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"

您可以看到“0001-03-20 LMT”不正确。你知道如何将这个因子转换为 POSIXct 吗?

谢谢

您只需要指定格式,因为您的 date/time 字符串的格式非常不标准,甚至含糊不清:

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 中的文档。

您可以使用 lubridate

使这变得更简单
library(lubridate)

# month-day-year hour-minute-second
mdy_hms(f, tz="EST")
[1] "2014-01-03 20:59:30 EST"