我发现自己遇到了一个问题,我无法找到解决方案的线索 - 这使得它非常困难实际上对付它。这里有云:在R(用R-Studio的),我尝试创建一个Date对象库lubridate
:as.POSIXlt.POSIXct(x,tz)中的错误:(从警告转换而来)未知时区'GMT'
library(lubridate)
ymd(20161001)
这将导致一个错误:
Error in as.POSIXlt.POSIXct(x, tz) : (converted from warning) unknown timezone 'GMT'
最后一个命令的第二次运行(以及任何后续运行)会产生正确的结果:
ymd(20161001)
[1] "2016-01-01"
直到我重新启动我的R会话,当第一次运行再次触发错误。我检查了几个设置,但找不到任何东西从第一次运行到第二次运行更改。这里有,比如,我sessionInfo()
的输出:
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Dutch_Netherlands.1252 LC_CTYPE=Dutch_Netherlands.1252 LC_MONETARY=Dutch_Netherlands.1252 LC_NUMERIC=C
[5] LC_TIME=Dutch_Netherlands.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lubridate_1.6.0
loaded via a namespace (and not attached):
[1] magrittr_1.5 tools_3.3.2 stringi_1.1.2 stringr_1.1.0
Sys.timezone()
说[1] "Europe/Berlin"
,并且Sys.getenv('TZ')
是空的:""
我确实觉得别人跌倒在同样的警告,如this blogpost或here,但这些问题与时间有关,而我宁愿完全忽略时间,只处理日期。
尝试检查有效TZ值的列表: 'Sys.setlocale( “LC_TIME”, “英语”)' –
TNX,可惜没有成功。行为依然如此。 – Taeke
@泰克你找到了解决方案吗?我遇到与ymd_hms相同的问题 - 第一个调用引发同样的错误,第二个调用执行得非常好。 – thatWaterGuy