我从字符列创建了一个datetime列,如下所示:
dat$created_datetime <- strptime(dat$created_at, format = '%d/%m/%Y %H:%M')
我的清理代码在此列中报告了NA,但条目看起来很好:
> dat$created_datetime[514]
[1] "2016-10-02 02:26:00"
> is.na(dat$created_datetime[514])
[1] TRUE
> str(dat$created_datetime)
POSIXlt[1:300400], format: "2016-06-29 13:10:00" "2016-06-30 03:56:00" "2016-07-05 09:43:00" "2016-07-12 06:47:00" "2016-07-13 06:57:00" "2016-07-13 10:11:00" ...
300k行中只有62行受到影响。我无法弄清楚发生了什么。
答案 0 :(得分:1)
您错误地指定了日期的参数。例如,你有第一天 - 你给的字符串以一年开头。请参阅https://www.stat.berkeley.edu/~s133/dates.html - 了解%d,%H等代表的例子。另请注意,您提供的字符串由“ - ”分隔,而不是“/”。检查我的代码 - 我获取了您的数据,并且能够正确加载它。第一个块是你正在做的 - 第二个是纠正的
a <- "2016-10-02 02:26:00"
a <- strptime(a, format = '%d/%m/%Y %H:%M')
is.na( a )
a <- "2016-10-02 02:26:00"
a <- as.POSIXct(a, format = '%Y-%m-%d %H:%M:%S')
is.na( a )