2013-11-04 64 views
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" ... 

謝謝!

+1

您需要提供更多信息。在「'/'」日期,哪個號碼分別對應年,月和日?在'''日期,這個數字是對應年份還是日期?你想對缺失的組件做出哪些猜測?請同時向我們展示您迄今已嘗試的代碼。 – Henrik

回答

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"