0

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

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

谢谢!

4

1 回答 1

2

基本上我会使用lubridateandparse_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"
于 2013-11-04T22:57:03.450 回答