Rstudio中未知的时区

3
一个错误阻止我编织我的文档。
我收到的错误是:
Quitting from lines 79-81 (Project_GYMBO.Rmd) 
Error in mutate_impl(.data, dots) : 
  Evaluation error: (converted from warning) unknown timezone 'default/America/Toronto'.

引起错误的代码非常简单。
weight.rm %>% mutate(datetime = ymd_hms(datetime)) %>% head

数据看起来像这样
    data.frame(stringsAsFactors=FALSE,
    datetime = c("2017-10-09 16:03:09", "2017-10-09 15:36:23",
                 "2017-10-09 15:04:53", "2017-10-09 13:01:23",
                 "2017-10-09 12:33:16", "2017-10-09 12:05:41"),
          WR = c(87, 69, 61, 51, 50, 48)
)

这使我

Warning message:
In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'default/America/Toronto'

我目前在多伦多工作。
据我所知,这是因为 R 无法正确确定我的时区。当我调用 Sys.timezone() 时,返回 NA。
这是一个已知的问题吗?有谁能告诉我为什么 R 无法理解我的时区?

我无法通过复制/粘贴您的数据来重现问题。 - akrun
lubridate::ymd_hmstz参数默认为"UTC",所以这很奇怪。而且调用as.POSIXlt.POSIXct也没有意义。显然缺少一些必要的上下文信息。 - alistaire
2个回答

7
根据这个 R bug 报告,这是macOS 10.3的一个问题。虽然该 bug 报告已经被标记为已修复,但R版本3.4.2的R 安装和管理手册中仍将其列为已知问题。当前开发版本中似乎已经解决了这个问题(NEWS 文件,请查看顶部的第一条注释)。
目前,似乎最好的解决方法(尽管不是特别健壮)是将以下内容添加到您的~/.Rprofile文件中:
Sys.setenv(TZ = "America/Toronto")

当然,不在America/Toronto时区的人将使用其实际时区进行替换。在错误链接中也有修复编译R时的指令,或者您可以使用当前的开发版本,这可能是某些情况下更好的选项。


1
看起来这个问题已经在R 3.4.3中解决了。您可以在发布新闻中了解更多信息。
编辑:以下是发布说明的相关部分。
在类Unix系统上安装
为macOS 10.13“High Sierra”中时区文件位置的更改添加了一个解决方法,并在10.13.1中再次添加,因此当使用--with-internal-tzcode(macOS上的默认设置)配置R时,可以从系统设置正确推断出默认时区。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接