【问题标题】:How to convert a character column with a specific date format into date? [duplicate]如何将具有特定日期格式的字符列转换为日期? [复制]
【发布时间】:2022-12-15 13:10:56
【问题描述】:

我的数据框如下所示:

Date_1 (char)   Date_2 (char)
Jul 10, 2019    Jul 13, 2019
Sep 10, 2018    Dec 14, 2018
Oct 25, 2021    Nov 14, 2022
...

我还没有找到合适的代码来将这两个字符列转换为日期类型。输出应该类似于'mm/dd/yyyy'。感谢任何提示。

编辑: 这是我的输出

structure(list(Start_Date = c("Dec 12, 2017", "Oct 19, 2022","Oct 3, 2022"), End_Date = c("Dec 25, 2017", "Dec 19, 2022", "Dec 1, 2022"), Completion = c("100% completed", "34% completed", "62% completed")), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"))

【问题讨论】:

  • library(lubridate) library(dplyr) mutate(df, across(, mdy))

标签: r date character


【解决方案1】:

有两个步骤。

  1. 首先转换为日期对象。您可以使用 as.Date 并且您必须首先指定日期的格式。
  2. 然后你就可以随意格式化了。您应该使用format 函数。

    这可能有点混乱,因为 format 被用于不同目的两次。

    Date_1 = "Jul 10, 2019"
    as.Date(Date_1, format = "%b %d, %Y") |>
      format("%m-%d-%Y")
    #[1] "07-10-2019"
    

    使用数据框:

    data |>
      transform(Date_1 = as.Date(Date_1, format = "%b %d, %Y") |>
                  format("%m-%d-%Y"))
    

【讨论】:

  • 谢谢@Mael,不幸的是,当我使用这段代码时,现在我的日期列完全是空的——知道为什么吗?
  • 可能是因为您正在使用数据框,而此示例仅依赖于向量。
  • 如何为数据框编辑此代码?
  • 检查了它。最好在此处使用dplyr,并在评论中使用@TarJae 回答
  • 不幸的是仍然不起作用 - 我在描述中添加了我的dput,这有帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 2022-12-25
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 2012-01-31
相关资源
最近更新 更多