我正在尝试将字符串转换为POSIXct对象,但如果我这样做
x <- as.POSIXct('15/10/17', tz = 'America/Sao_Paulo', format = '%d/%m/%y')
输出为NA。我认为这是因为它在17/10/17日在圣保罗成为夏令时,所以当天的午夜不存在。一种解决方案是强制x成为当天的另一个值,如
x <- structure(1508036400, class = c("POSIXct", "POSIXt"), tzone = "America/Sao_Paulo")
但是,如果有一个更优雅的解决方案,我正在努力。
我的会话信息:
> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252
[4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.2 tools_3.4.2 yaml_2.1.14 fortunes_1.5-4
提前致谢!
答案 0 :(得分:1)
目前尚不清楚这是as.POSIXct()
中是否存在错误,或者它是否将您从一个模糊的数据问题中解救出来。
在任何一种情况下,如果您只有日期信息,那么最佳做法是将您的数据存储为Date
而不是POSIXct
。
尝试as.Date('15/10/17', format = '%d/%m/%y')
。