3

我有一个大约 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
4

1 回答 1

6

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

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

于 2013-07-11T22:08:10.150 回答