as.POSIXct的奇怪行为

4
作为一个大数据表格的工作人员,我发现在一个日期时间列中出现了不应该有的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?!!

尝试添加时区。as.POSIXct("30/03/2014 2:00", format = "%d/%m/%Y %H:%M", tz = "GMT") - rmuc8
好的,它正在工作!这可能是日期和时间,在这里我们更改小时(从我的计算机所在的时区的冬令时到夏令时)。谢谢! - user2165907
1个回答

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")

这不会起作用,因为在你的国家(可能是欧洲)这个时间不存在


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接