格式化R中未以mmddyyyy格式编写的日期列

时间:2017-11-03 20:53:38

标签: r date format

我有一个字符列为“日期”,但没有用正确的mmddyyyy格式编写。

Example: 

ID      Date
125     9282007
350     10152007
225     1112007
240     1052007 

如何使用R将“日期”列格式化为正确的mmddyyyy格式?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用dplyr + lubridate

执行以下操作
library(dplyr)
library(lubridate)

df %>%
  mutate(Date = gsub("(\\d{2})(\\d{4}$)", "-\\1-\\2", Date),
         Date = format(mdy(Date), "%m-%d-%Y"))

<强>结果:

   ID       Date
1 125 09-28-2007
2 350 10-15-2007
3 225 01-11-2007

数据:

df = read.table(text = "ID      Date
                125     9282007
                350     10152007
                225     1112007", header = TRUE)

注意:

原始Date的格式不明确,因为1112007可能意味着11-1-2007或1-11-2007。在我的解决方案中,我假设天数总是两位数,因此11-1-2007将被编码为11-01-2007。但是,您应该在转换之前调查是否是这种情况。