2017-07-21 3 views
2

文字ベクトルに日付があります。すべての文字列にmm/dd/yyyyの形式があるわけではないので、あいまいな日付エラーを与えるため、as.Dateを使って日付ベクトルに簡単に変換できません。一部の文字列は、m/dd/yyyy(月1:9)の形式です。私は、条件によってゼロを追加するゼロ 先頭に0を加算する

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

する試みを追加する必要がある文字列を知っているように日付の

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

インジケータ:

はここで、ベクターの一部です

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

(私はペーストに慣れていません)うまくいきません。先頭の0から1桁の月(m/dd/yyy)を追加するための簡潔なソリューションですか?私はgsubまたはsubを推測していますか?私は日付のベクトルに変換することができるように、mm/dd/yyyの形式ですべての文字列が必要です。

+1

パディングがここに不要であるが、今後の参考のために、ここで一つの選択肢です: 'データ$日付= ifelse(grepl( '^ [1-9] /'、日付)、paste0( "0"、データ$日付)、データ$日付) ' – eipi10

+0

ありがとうございました。それは必要ではないということはどういう意味ですか? Rがゼロを追加することなく日付として認識できる方法はありますか? –

+0

はい、下記の@ Florianの答えをご覧ください。 'asDate'に日付文字列を解析する方法を伝える' format'文字列を提供するだけです。 – 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

あなたは正しく見えますが、操作をしようとすると、この日付が指定された日付よりも小さいと、日付があいまいであるというエラーメッセージが表示されます。 –

関連する問題