在 R 中格式化具有不一致日期格式的向量

Posted

技术标签:

【中文标题】在 R 中格式化具有不一致日期格式的向量【英文标题】:Formatting a vector with inconsistent date formats in 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")

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

【问题讨论】:

【参考方案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 项目,感谢你们的帮助

以上是关于在 R 中格式化具有不一致日期格式的向量的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 将日期格式的字符串列表/向量转换为 posix 日期类

vb.net 2010日期格式和系统日期格式不一致,求解

BDC中日期和数量格式的转换处理

在R中将日期转换为特定格式的字符

如何在EXCEL中改变日期格式

如何替换EXCEL中日期的格式