在 R 中转换 POSIXct 会在 3.5.0 版中产生 NA [重复]
Posted
技术标签:
【中文标题】在 R 中转换 POSIXct 会在 3.5.0 版中产生 NA [重复]【英文标题】:Converting POSIXct in R yields NA in version 3.5.0 [duplicate] 【发布时间】:2018-12-07 16:14:50 【问题描述】:这是我的代码:
last_date <- "Tue, 26 Jun 2018 08:58:10 -0700 (PDT)"
as.Date(as.POSIXct(last_date, format = "%a, %d %b %Y %H:%M:%S %z"))
结果是
[1] NA
版本信息:
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 5.0
year 2018
month 04
day 23
svn rev 74626
language R
version.string R version 3.5.0 (2018-04-23)
nickname Joy in Playing
当我在另一台计算机(R 版本 3.4.0)上尝试相同的代码时,结果正如预期的那样,
[1] "2018-06-26"
关于如何解决这个问题的任何想法?谢谢。
【问题讨论】:
我无法重现您的错误,我尝试了您的代码,得到的是:[1] "2018-06-26"
。我有和你一样的R
版本。
结果是什么:Sys.getlocale("LC_TIME")
"Portuguese_Brazil.1252".
【参考方案1】:
我认为你的本地时间语言不是英语......所以它会失败:
您的解决方案:
Sys.setlocale("LC_TIME", "C")
last_date <- "Tue, 26 Jun 2018 08:58:10 -0700 (PDT)"
as.Date(as.POSIXct(last_date, format = "%a, %d %b %Y %H:%M:%S %z"))
结果:
[1] "2018-06-26"
注意:您可能必须将其设置回原来的位置以执行其他任务。在这种情况下,要么重新启动 R,要么执行:
store_loctime <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
# Your code
Sys.setlocale("LC_TIME", store_loctime)
【讨论】:
像魅力一样工作!谢谢!以上是关于在 R 中转换 POSIXct 会在 3.5.0 版中产生 NA [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 R 中使用 as.POSIXct 为相同的字符结构提供 na
使用 Date/POSIXct 列(base R)将 ts 对象转换为数据框