R:strptime()和is.na()出乎意料的结果

时间:2013-07-11 22:05:00

标签: r datetime strptime

我有一个大约有800万行和3列的数据框。我以下列方式使用了strptime()

df$date.time <- strptime(df$date.time, "%m/%d/%y %I:%M:%S %p")

对于除了1104行之外的所有行都可以正常工作,我使用

检查了这些行
df[is.na(df$date.time), ]

当我查看这些“问题”数据时,date.time条目似乎按照我期望的方式进行格式化。例如,这是一个出现问题的观察结果,但似乎不是NA:

id                date.time              outcome
observation543490 2012-03-11 02:14:01    C

这里可能会发生什么is.na(df$date.time)为显然已正确转换的行返回TRUE值?

这是一个可重复的例子(如果你在CST):

is.na(strptime("03/11/12 2:14:01 AM", "%m/%d/%y %I:%M:%S %p", "CST6CDT"))
#[1] TRUE

1 个答案:

答案 0 :(得分:6)

由于夏令时,问题可能是所有返回NA的时间都不存在于您正在使用的任何时区。

检查数据源以确定记录数据的时区,然后在调用tz时将strptime参数设置为该值。