【发布时间】:2016-05-24 00:48:03
【问题描述】:
作为一个 R 新手,我正在努力调试隐秘的 R 错误。我有包含 150k 行的 csv,我将这些行加载到名为“日期”的数据框中。然后我使用 lubridate 将此字符列转换为日期时间,以期找到最小/最大日期。
dates <- csv[c('datetime')]
dates$datetime <- ymd_hms(dates$datetime)
运行此代码我收到以下错误消息:
Warning message:
3 failed to parse.
我接受这一点,因为 CSV 可能会在其中包含一些 janky 日期和下一次运行:
min(dates$datetime)
max(dates$datetime)
这两个都返回 NA,我认为这是来自仍然存储在数据框中的几个损坏的日期。我四处寻找快速修复方法,甚至尝试构建一个 foreach 循环来确定问题日期,但没有运气。识别 3 个损坏日期的简单方法是什么?
example date format: 2015-06-17 17:10:16 +0000
【问题讨论】:
-
可以检查格式是否一致。还要检查
?guess_formats -
如果按日期时间向量排序,NA 是在头部还是尾部?
-
@akrun 我试图在 excel 中通过导入 csv 并检查每个单元格的长度并过滤任何不合适的地方来做到这一点。这没有产生任何结果,有没有办法在 R 中做到这一点?我尝试了guess_formats & parse_date_time,但都失败了。
-
@lawyeR 就是这样!我对未解析的原始 csv 进行了排序,然后 tail(dates) 显示了三个不正确的字段。感谢您的帮助!
-
您还可以使用
which(is.na(dates$datetime))找到缺失日期的行号。