如何在R中将因子转换为DateTime?

时间:2014-04-15 21:26:49

标签: r datetime

这个问题对于你们中的一些人来说可能很简单,但是因为我是R的初学者,所以请耐心等待。

我有一个数据框,其中包含一个因子列(称为时间),其中包含DateTime数据,如下所示:

time
01/01/2011 00:10
02/01/2011 03:00
03/01/2011 05:00
04/01/2011 10:03

我想将此列转换为R中的DateTime列。我搜索并尝试了一些函数,但它给了我' NA'结果。我尝试过以下功能:

> dataframe1$datetime <- as.POSIXlt(as.character(dataframe1$time), format="%d/%m/%Y %H:%M")
> dataframe1$datetime <- as.POSIXlt(strptime(dataframe1$time), format="%d/%m/%Y %H:%M")
> dataframe1$datetime <- as.POSIXlt(dataframe1$time, format="%d/%m/%Y %H:%M")
> dataframe1$datetime <- as.chron(dataframe1$time, "%d/%m/%Y %H:%M")

我不知道还有什么可以尝试。我希望理想情况下添加三列,即日期时间,日期和时间。

2 个答案:

答案 0 :(得分:17)

尝试:

dataframe1$datetime <- strptime(x = as.character(dataframe1$datetime),
                                format = "%d/%m/%Y %H:%M")

答案 1 :(得分:2)

最简单的事情可能是使用具有大量函数的lubridate包进行日期操作。以下内容将您的时间转换为POSIXct对象:

 library(lubridate)
 mdy_hm( as.character(dataframe1$time) )

请参阅?mdy以查看各种日期解析功能。

对于一个不依赖于lubridate

的稍微冗长的版本
strptime(x = as.character( dataframe1$datetime ), format = "%d/%m/%Y %H:%M")