as.POSIXct的奇怪行为

时间:2015-03-31 10:18:25

标签: r

在大数据表中工作时,我在日期时间列中找到了NA值,它们不应该是......所有这些值都应该是“2014-03-30 02:00:00”。

我做了一些试验:

> as.POSIXct("2014-03-03 02:00:00")
[1] "2014-03-03 02:00:00 CET"
> as.POSIXct("30/03/2014 2:00", format = "%d/%m/%Y %H:%M")
[1] NA
> as.POSIXct("30/03/2014 0:00", format = "%d/%m/%Y %H:%M")
[1] "2014-03-30 CET"
> as.POSIXct("30/03/2014 4:00", format = "%d/%m/%Y %H:%M")
[1] "2014-03-30 04:00:00 CEST"

知道为什么只有

as.POSIXct("30/03/2014 2:00", format = "%d/%m/%Y %H:%M")

产生NA?!!

1 个答案:

答案 0 :(得分:3)

正如我在评论中指出的,这里的解决方案是使用

as.POSIXct("30/03/2014 2:00", format = "%d/%m/%Y %H:%M", tz = "GMT")

其中GMT可以替换为您所在的时区。

正如您已经指出的那样,原因是从冬季到夏季的变化

中间的任何时间

as.POSIXct("30/03/2014 2:00", format = "%d/%m/%Y %H:%M")

as.POSIXct("30/03/2014 2:59", format = "%d/%m/%Y %H:%M")

在您所在的国家/地区(可能在欧洲), 已经不存在