从字符转换为 date/time returns NA
Conversion from character to date/time returns NA
我经常使用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 会话的语言环境设置为可以正确解释英文缩写的语言环境。有关如何在上述函数调用中指定 locale
,请参阅 ?Sys.setlocale
的 Examples 部分。
例如,在我的 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"
非常感谢亨里克!!!
我像这样更改了 LC_TIME 类别,现在可以使用了
Sys.getlocale(category = "LC_TIME")
[1] "German_Germany.1252"
Sys.setlocale("LC_TIME", "English")
[1] "English_United States.1252"
DATE_in_posix<-as.POSIXct(DATE,format="%a %b %d %H:%M:%S %Y")
> DATE_in_posix
[1] "2015-04-10 11:57:47 CEST"
当然现在 strptime 也可以了
DATE_in_posix<-strptime(DATE,format="%a %b %d %H:%M:%S %Y")
> DATE_in_posix
[1] "2015-04-10 11:57:47 CEST"
非常感谢你们,周末愉快!
我经常使用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 会话的语言环境设置为可以正确解释英文缩写的语言环境。有关如何在上述函数调用中指定 locale
,请参阅 ?Sys.setlocale
的 Examples 部分。
例如,在我的 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"
非常感谢亨里克!!!
我像这样更改了 LC_TIME 类别,现在可以使用了
Sys.getlocale(category = "LC_TIME")
[1] "German_Germany.1252"
Sys.setlocale("LC_TIME", "English")
[1] "English_United States.1252"
DATE_in_posix<-as.POSIXct(DATE,format="%a %b %d %H:%M:%S %Y")
> DATE_in_posix
[1] "2015-04-10 11:57:47 CEST"
当然现在 strptime 也可以了
DATE_in_posix<-strptime(DATE,format="%a %b %d %H:%M:%S %Y")
> DATE_in_posix
[1] "2015-04-10 11:57:47 CEST"
非常感谢你们,周末愉快!