我经常使用 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/