这个问题对于你们中的一些人来说可能很简单,但是因为我是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")
我不知道还有什么可以尝试。我希望理想情况下添加三列,即日期时间,日期和时间。
答案 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")