我有一个包含日期列的数据框。但是,我有一些日期是以一种方式格式化而另一种日期格式化。如何将此数据调整为单一日期格式。如何处理日期变量,如下所示。
df = data.frame(Date=c("5/1/13","8/1/13","9/1/13","Apr-10",
"Apr-11","Apr-12","Apr-13"))
对于它的价值,我的数据看起来如下:
> str(dat)
'data.frame': 425376 obs. of 27 variables:
$ Date : chr "Jan-10" "Jan-10" "Jan-10" "Jan-10" ...
谢谢!
答案 0 :(得分:2)
基本上我会使用lubridate
和parse_date_time
来转换日期。
但"%b-%y"
格式无法解析(as.Date,strptime也失败)。我不得不添加一天将其转换为%d-%b-%y
格式。这是我的代码:
df$Date <- as.character(df$Date)
format = guess_formats(df$Date,orders=c('dmy','my'))
df$Date[format== "%b-%y"] <- paste(1,df$Date[format== "%b-%y"],sep="-")
parse_date_time(df$Date,"dmy")
[1] "2013-01-05 UTC" "2013-01-08 UTC" "2013-01-09 UTC"
"2010-04-01 UTC" "2011-04-01 UTC" "2012-04-01 UTC" "2013-04-01 UTC"