2017-07-21 60 views
2

我有一個角色矢量的日期。我不能輕易地使用as.Date轉換爲日期矢量,因爲並非所有字符串的格式都是mm/dd/yyyy,因此給了我不明確的日期錯誤。一些字符串的格式爲m/dd/yyyy(月份1:9)。將前導零加到日期

這裏是載體的一部分:

data$Date <- c("8/26/2014","3/10/2014","9/25/2014","11/12/2014","8/4/2015") 

指標的日期,讓我知道我需要增加一個零

data$date <- grepl("[0-9]{2}/[0-9]{2}/[0-9]{4}", data$Date) 

試圖通過有條件加零哪些字符串:

data$Date<-ifelse(data$date == "FALSE", paste0("0", data$Date), data$Date) 

不起作用(我不熟悉粘貼)。任何簡明的解決方案,以添加前導零到單位數月(m/dd/yyy)?我猜gsub或sub?我需要所有的字符串形式爲mm/dd/yyy,所以我可以轉換爲日期向量。

+1

填充具有前導零不需要在這裏,但以供將來參考,這裏是一個選項:'數據$日期= ifelse(grepl( '^ [1-9] /',日期),paste0( 「0」,數據$日期),數據$日期)' – eipi10

+0

謝謝你的工作。你是什​​麼意思,沒有必要?有一種方法可以將R識別爲日期而不添加零點? –

+0

是的,請參閱下面的@ Florian的回答。您只需提供一個'format'字符串,告訴'asDate'如何解析日期字符串。 – eipi10

回答

1
data <- data.frame(Date=c("8/26/2014","3/10/2014","9/25/2014","11/12/2014","8/4/2015")) 

as.Date(data$Date,format="%m/%d/%Y") 

對您的數據適合我。輸出是

"2014-08-26" "2014-03-10" "2014-09-25" "2014-11-12" "2015-08-04" 
+0

你說得對,它看起來不錯,但是當你嘗試對它進行操作時,比如說這個日期少於給定日期,會彈出一個錯誤消息,說明日期不明確。 –