【问题标题】:ISO 8061 dmy failing to parse after a certain row at change of dateISO 8061 dmy 在更改日期的某一行之后无法解析
【发布时间】:2019-05-09 06:02:03
【问题描述】:

我在 mm/dd/yyyy 中有一列日期,我正在尝试使用 dmy() 将它们转换并以 ISO 格式存储在新列中。它适用于前 15k 行,但随后停止适用于文件的其余部分,并出现错误“警告消息:2786262 无法解析”。我查看了文件以查看它停止工作的位置,并注意到它在从 2014 年 4 月 12 日更改为 2014 年 4 月 13 日的行中停止工作。知道我在这里可能做错了什么吗?

uber14$DateISO <- dmy(uber14$Date)

警告信息: 2786262 解析失败。

uber14$DateISO <- format(lubridate::dmy(uber14$Date), "%b@%B")

警告信息: 2786262 解析失败。

uber14[15073,10]
[1] "2014-12-04"

uber14[15073,8]
[1] "4/12/2014"

uber14[15074,8]
[1] "4/12/2014"

uber14[15075,8]
[1] "4/13/2014"

uber14[15075,10]
[1] NA

uber14[15074,10]
[1] "2014-12-04"

dmy(uber14[15075,8])
[1] NA

【问题讨论】:

  • 如果你有mm/dd/yyyy格式的数据,使用mdy而不是dmy会有用吗
  • 根据显示的示例,您似乎可能混合使用 d/m/y、m/d/y 和 y-m-d。
  • 如果日期格式不同,一个选项是parse_date_timeanytime::anydate
  • @neilfws 对任何混淆感到抱歉,但第 8 列中的所有日期都是我想要转换为 ISO 的形式,我正在尝试将其记录到第 10 列。当我检查结果时,列10 在 4/12 之前表现正常,但在 4/13 之后突然停止工作(每天有数百行)。
  • 在这种情况下,为什么你使用dmy,因为我在第一条评论中是dd/mm/yyyy。相反,它应该是mdy

标签: r dataframe datetime parsing


【解决方案1】:

这个问题是由于使用dmy 来处理mm/dd/yyyy 格式。应该是mdy

library(lubridate)
uber14$DateISO <- mdy(uber14$Date)

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 2013-05-14
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多