在数据框列中更改两种不同的日期格式

时间:2013-11-04 22:35:30

标签: r

我有一个包含日期列的数据框。但是,我有一些日期是以一种方式格式化而另一种日期格式化。如何将此数据调整为单一日期格式。如何处理日期变量,如下所示。

    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" ...

谢谢!

1 个答案:

答案 0 :(得分:2)

基本上我会使用lubridateparse_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"
相关问题