使用不同的索引方法将列转换为datetime对象

时间:2017-05-20 18:35:57

标签: r datetime

我试图将数据框中的日期列转换为日期时间对象。

table2

为什么一种索引方法有效而另一种方法无效?

我更愿意使用后者,因为这将包含在函数中,过去我在使用函数中的dates <- c("11/28/2016 10:08 AM", "11/28/2016 10:08 AM", "11/28/2016 10:08 AM") dates <- as.data.frame(dates) # Using a $ to index the column works dates$dates <- as.POSIXlt(dates$dates, format="%m/%d/%Y %I:%M %p") dates 1 2016-11-28 10:08:00 2 2016-11-28 10:08:00 3 2016-11-28 10:08:00 # But this does not work dates[,'dates'] <- as.POSIXlt(dates[,'dates'], format="%m/%d/%Y %I:%M %p") Warning message: In `[<-.data.frame`(`*tmp*`, , "dates", value = list(sec = c(0, : provided 11 variables to replace 1 variables $索引列时遇到问题。

1 个答案:

答案 0 :(得分:0)

@akrun是正确的as.POSIXlt不是矢量,不能简单地作为列添加到数据帧。对于列表,[[用于选择单个元素,而[则返回所选元素的列表。

dates[['dates']] <- as.POSIXlt(dates[['dates']], format="%m/%d/%Y %I:%M %p")
            dates
1 2016-11-28 10:08:00
2 2016-11-28 10:08:00
3 2016-11-28 10:08:00