首页 > 解决方案 > R数据框中的混合日期格式

问题描述

您如何处理混合日期类型的列,例如 8/2/2020,2/7/2020,并且都反映了 2 月,我尝试过 zoo::as.Date(mixeddatecolumn,"%d/%m /%Y")。第一个是对的,第二个是错的。

我也在这里尝试过解决方案 在数据框中修复混合日期格式?但问题似乎与我正在处理的不同。

标签: rdataframedate-format

解决方案


即使是人类也很难知道日期'8/2/2020'是 2 月 8 日还是 8 月 2 日。但是,我们可以利用您知道所有这些日期都在 2 月这一事实,并删除代表月份的日期的“2”部分,并以一种标准格式排列日期,然后将日期转换为实际的 Date 对象。

x <- c('8/2/2020','2/7/2020')
lubridate::mdy(paste0('2/', sub('2/', '', x, fixed = TRUE)))
#[1] "2020-02-08" "2020-02-07"

或在基础 R 中相同:

as.Date(paste0('2/', sub('2/', '', x, fixed = TRUE)), "%m/%d/%Y")

推荐阅读