双向转换R中的日期

问题描述

我正在尝试使用lubridate将日期对象转换为日期类。以下是“错误”格式的日期”

wrong_format_date1 <- "01-25-1999"
wrong_format_date2 <- 25012005
wrong_format_date3 <- "2005-05-31"

但是我希望它们采用这种格式:

"1999-01-25"
"2005-01-25"
"2005-05-31"

有人可以帮我吗?

解决方法

尝试一下。使用parse_date_time()中的lubridate,您可以在其中定义具有可能格式的向量,以便将字符串解析为日期。这里的代码:

library(lubridate)
#Data
wrong_format_date1 <- "01-25-1999"
wrong_format_date2 <- 25012005
wrong_format_date3 <- "2005-05-31"
#Dataframe
df <- data.frame(v1=c(wrong_format_date1,wrong_format_date2,wrong_format_date3),stringsAsFactors = F)
#Code
df$Date <- as.Date(parse_date_time(df$v1,c("mdY","dmY","Ymd")))

输出:

          v1       Date
1 01-25-1999 1999-01-25
2   25012005 2005-01-25
3 2005-05-31 2005-05-31