r - 从字符到日期/时间的转换返回 NA

标签 r posixct

我经常使用 as.POSIXct 将字符转换为 POSIXct,但有时会得到 NA,我不知道为什么。例如:

DATE <- "Fri Apr 10 11:57:47 2015"
DATE_in_posix <- as.POSIXct(DATE, format="%a %b %d %H:%M:%S %Y")

我也尝试过:

DATE_in_posix <- as.POSIXct(DATE, format="%a %h %d %H:%M:%S %Y")

但两者的结果始终是:

> DATE_in_posix
[1] NA

也许 as.POSIXct 的输入太长?当时间太长时,解决方案是什么?

最佳答案

这可能是因为“Fri”和“Apr”不是您所在区域的正确缩写。

使用 Sys.setlocale("LC_TIME", locale) 将 R session 的区域设置设置为能够正确解释英语缩写的区域设置。有关如何在上述函数调用中指定 locale 的信息,请参阅 ?Sys.setlocale示例部分。

例如,在我的 Ubuntu 机器上,它将是:

> Sys.setlocale("LC_TIME", "en_US.UTF-8")
> as.POSIXct("Fri Apr 10 11:57:47 2015", format="%a %b %d %H:%M:%S %Y")
[1] "2015-04-10 11:57:47 CDT"

关于r - 从字符到日期/时间的转换返回 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563613/

相关文章:

列表中的 POSIXct 日期范围

r - as.POSIXct 的时区不起作用

r - POSIXct 对象是 NA,但 is.na() 返回 FALSE

r - 如何在r中组合具有相同结构的两个列表

r - 在 R 中执行非负矩阵分解

python - 如何使用多个分类变量以 Python R 风格创建预测模型

r - 使用 RPostgreSQL 提取数据时,是否有处理 R 中时间戳列的特定方法?

r - 如何在 pivot_wider 中指定特定的列顺序

list - 逐行创建 R 数据框

r - POSIXct 和 xts 中的时区,从 R 中的 GMT 转换