首页 > 解决方案 > 将从 as.POSIXct 或 as.POSIXlt 返回的值保存到列中

问题描述

我只是试图以日期/时间格式保存这些日期(我最初作为从 SQL 数据库中提取的 .csv 文件中的字符串输入的日期),以便我可以计算日期之间的差异。更具体地说,我在 UCT 中获得了三个日期:其中两个是日期/时间字段,用作时间范围,其中一个是交货时间(作为日期/时间)。我只需要检查交货时间是否在给定的时间范围内。

尝试将字符串转换为日期/时间并将它们保存在列中...

所以在尝试之后:(使用 as.POSIXct 和 as.POSIXlt)

test[,"requested_delivery_start_date"] <-
as.POSIXct(test[,"requested_delivery_start_date"], tz = "GMT", format = "%Y-%m-%d %H:%M:%OS")

并得到错误的结果,

我试过了:

for(i in c(1:nrow(input_subset))){
    test[i,"requested_delivery_start_date"] <- 
    as.POSIXct(test[i,"requested_delivery_start_date"], tz = "GMT", format = "%Y-%m-%d %H:%M:%OS")
}

我得到以下错误:(有很多相同类型的错误,我只是粘贴了前三个)

warnings() Warning messages:
1: In [<-.factor(*tmp*, iseq, value = structure(1528822800, class = c("POSIXct", ... : invalid factor level, NA generated
2: In [<-.factor(*tmp*, iseq, value = structure(1528768800, class = c("POSIXct", ... : invalid factor level, NA generated
3: In [<-.factor(*tmp*, iseq, value = structure(1528768800, class = c("POSIXct", ... : invalid factor level, NA generated

我究竟做错了什么?

更新:我将它们存储到新的列值中,只需在将时区转换为本地时区后将它们添加到数据框中。

IE

newStart <- as.POSIXct(input_subset[,"requested_delivery_start_date"], tz = "GMT", format = "%Y-%m-%d %H:%M:%OS")

然后我可以转换 newStart 中的日期并将它们附加到数据框中。

标签: rdata-cleaning

解决方案


推荐阅读