我有一个大约有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
答案 0 :(得分:6)
由于夏令时,问题可能是所有返回NA
的时间都不存在于您正在使用的任何时区。
检查数据源以确定记录数据的时区,然后在调用tz
时将strptime
参数设置为该值。