as.POSXct返回NA

时间:2017-10-18 18:17:36

标签: r posixct

我正在尝试将字符串转换为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

提前致谢!

1 个答案:

答案 0 :(得分:1)

目前尚不清楚这是as.POSIXct()中是否存在错误,或者它是否将您从一个模糊的数据问题中解救出来。

在任何一种情况下,如果您只有日期信息,那么最佳做法是将您的数据存储为Date而不是POSIXct

尝试as.Date('15/10/17', format = '%d/%m/%y')