【问题标题】:Formatting a vector with inconsistent date formats in R在 R 中格式化具有不一致日期格式的向量
【发布时间】:2022-01-04 21:05:00
【问题描述】:

我是 R 新手,正在清理数据表,csv 有一个名为 Contract.Valid.Until 的列

df$Contract.Valid.Until <- c("2020", "2021", "2019", "30-Jun-19", "2022", "18-Aug-2021")

我现在想将其转换为统一的日期类型,我在 Stack Overflow 上找到了 Year 和 Dates 的函数,但没有找到如何组合它们,这是我找到的函数

df$Contract.Valid.Until <- lubridate::ymd(df$Contract.Valid.Until, truncated = 2L)

df$Contract.Valid.Until <- as.Date(df$Contract.Valid.Until, "%d-%b-%y")

如果有人能帮助我,我会很高兴:)

【问题讨论】:

    标签: r date


    【解决方案1】:

    也许parse_date 会起作用

    library(parsedate)
    parse_date(c("2020", "2021", "2019", "30-Jun-19", "2022", "18-Aug-2021"))
    [1] "2020-01-01 UTC" "2021-01-01 UTC" "2019-01-01 UTC" "2019-06-30 UTC" "2022-01-01 UTC" "2021-08-18 UTC"
    

    【讨论】:

    • 您的解决方案适用于我给出的向量,但是当我在我的实际列(类字符)中尝试它时它不起作用。这是我收到的错误消息:警告:17885 解析失败。 row col 预期实际 1 -- 日期如 2021 2 -- 日期如 2022
    • 如果解决方案适用于您提供的数据,则您未能提供适当的可重现示例。请与解析失败的列共享数据。
    • 不,我的例子是正确的,解决方案也是正确的,我只有多个库,我的程序使用了错误的 parse_date 函数。我道歉,这是我的第一个 Stack Overflow 问题,也是我的第一个 R 项目,感谢你们的帮助
    猜你喜欢
    • 2020-08-24
    • 2017-04-05
    • 1970-01-01
    • 2016-01-10
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多