【问题标题】:as.POSIXct returns NAs without apparent reasonas.POSIXct 无明显理由返回 NA
【发布时间】:2017-10-03 17:00:34
【问题描述】:

我正在努力使用as.POSIXct 函数将字符串转换为日期,因为它为某些行提供了 NA,但对其他行却没有。这是我的一段数据

            Fecha     hora  Lt.s
165397 30/03/2014  0:30:00  4.76
165398 30/03/2014  0:45:00  3.66
165399 30/03/2014  1:00:00  3.84
165400 30/03/2014  1:15:00  3.84
165401 30/03/2014  1:30:00  4.38
165402 30/03/2014  1:45:00  5.14
165403 30/03/2014  2:00:00  7.22
165404 30/03/2014  2:15:00 10.77
165405 30/03/2014  2:30:00 11.79
165406 30/03/2014  2:45:00 13.12
165407 30/03/2014  3:00:00 13.12
165408 30/03/2014  3:15:00 13.12
165409 30/03/2014  3:30:00 13.12
165410 30/03/2014  3:45:00 13.66 

所以我粘贴了前两列,然后将其转换为 POSIX:

dat$datehour <- as.POSIXct(paste(dat$Fecha, dat$hora),format="%d/%m/%Y %H:%M:%S")

这就是我得到的:

            Fecha    hora  Lt.s            datehour
165397 30/03/2014 0:30:00  4.76 2014-03-30 00:30:00
165398 30/03/2014 0:45:00  3.66 2014-03-30 00:45:00
165399 30/03/2014 1:00:00  3.84 2014-03-30 01:00:00
165400 30/03/2014 1:15:00  3.84 2014-03-30 01:15:00
165401 30/03/2014 1:30:00  4.38 2014-03-30 01:30:00
165402 30/03/2014 1:45:00  5.14 2014-03-30 01:45:00
165403 30/03/2014 2:00:00  7.22                <NA>
165404 30/03/2014 2:15:00 10.77                <NA>
165405 30/03/2014 2:30:00 11.79                <NA>
165406 30/03/2014 2:45:00 13.12                <NA>
165407 30/03/2014 3:00:00 13.12 2014-03-30 03:00:00
165408 30/03/2014 3:15:00 13.12 2014-03-30 03:15:00
165409 30/03/2014 3:30:00 13.12 2014-03-30 03:30:00
165410 30/03/2014 3:45:00 13.66 2014-03-30 03:45:00

我的数据框要大得多,其他随机行也是如此,但我无法确定此错误的原因以及解决方法。有人可以帮忙吗? 提前致谢

【问题讨论】:

  • 在您的时区看起来像夏令时(即没有 0200 小时)。
  • @JoshuaUlrich 好收获!这解释了为什么我得到 不同的 NA 值。

标签: r date character posixct


【解决方案1】:

这是由于您所在时区的夏令时。

as.POSIXct('30/03/2014 2:00:00', format='%d/%m/%Y %H:%M:%S', tz='CET')
# [1] NA

as.POSIXct('30/03/2014 2:00:00', format='%d/%m/%Y %H:%M:%S', tz='EST')
# [1] "2014-03-30 02:00:00 EST"

【讨论】:

  • 哇,我不知道这个。什么是夏令时?
  • 来自维基百科:DST
猜你喜欢
  • 2012-11-23
  • 2019-08-18
  • 2020-11-07
  • 1970-01-01
  • 2021-03-16
  • 2019-12-30
相关资源
最近更新 更多