将因子日期时间列转换为R中的POSIXct

时间:2019-01-22 14:42:52

标签: r

我还有另一个问题。我在数据框中有一个日期时间列,当我上传它时它就是一个因素,我希望它是POSIXct

str(ida$DATA_TRAMA)
 Factor w/ 1122932 levels "1-1-2010 00:00:51",..: 629101 629120 629128 629132 629139 629149

我希望它是POSIXct(%Y-%m-%d%H:%M:%S)格式。我已经尝试了所有这些方法,但是似乎都不起作用。无论我采用哪种方法,它都会获得NA值。

ida$DATA_TRAMA<- as.POSIXct(ida$DATA_TRAMA,format='%d/%m/%Y %H:%M:%S')

ida$DATA_TRAMA<- as.POSIXct(as.character(ida$DATA_TRAMA), format = "%d/%m/%Y %H:%M") 
ida$DATA_TRAMA <-format(ida$DATA_TRAMA, "%Y-%m-%d")
ida$DATA_TRAMA <- as.POSIXct(ida$DATA_TRAMA, format = '%Y-%m-%d:%H:%M:%S')

ida$DATA_TRAMA <- as.POSIXlt(as.character(ida$DATA_TRAMA), format="%m/%d/%Y %H:%M:%S")

ida$DATA_TRAMA <- strptime(ida$DATA_TRAMA,"%Y-%m-%d %H:%M:%S")

你知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

使用"factor"参数as.POSIXct将调用as.POSIXct.default,它使用具有as.POSIXlt方法的"factor",所以只需执行以下操作:

DF <- data.frame(d = "1-1-2010 00:00:51") # test data. d has factor class.
transform(DF, d = as.POSIXct(d, format = "%m-%d-%Y %T"))

给予:

                    d
1 2010-01-01 00:00:51