2017-12-18 27 views
0

次の文字ベクトルを日付クラスに変換しようとしています。文字の日付をRのパッケージrubridで変換できない

> library(lubridate) 
> unemployment_rate$month 

[1] "2017-1-1" "2017-2-1" "2017-3-1" "2017-4-1" "2017-5-1" "2017-6-1" "2017-7-1" "2017-8-1" "2017-9-1" "2017-10-1" "2017-11-1" "2017-12-1" 
[13] "2016-1-1" "2016-2-1" "2016-3-1" "2016-4-1" "2016-5-1" "2016-6-1" "2016-7-1" "2016-8-1" "2016-9-1" "2016-10-1" "2016-11-1" "2016-12-1" 

しかし、私は、私は次のような結果と警告メッセージが表示されますlubridateパッケージで日付を変換しようとすると:

> unemployment_rate$month <- ymd(unemployment_rate$month, "%Y-%m-%d") 

Error in `$<-.data.frame`(`*tmp*`, "month", value = c(17167, 17198, 17226, : 
    replacement has 25 rows, data has 24 
In addition: Warning message: 
1 failed to parse. 

データがactualy 24行を(持っている間、私はなぜreplacement has 25 rowsを理解することはできません2年)、どちらの日付がそれほど異なって1 failed to parse.

私が作成したのは元々、monthベクターを作成する必要があったことを知っておくと便利なことです。1月の列が「jan」、「feb」などの2列、 2016" と 『2017』。

+2

の解析に失敗した"% Ymd()内のY-%m-%d "'? – Sotos

+0

Man ..必要だったと思った、ありがとう。だから私は私はそのフォーマットを使用することができます再フォーマットしたいですか? – Tdebeus

+0

'format(ymd()、format = '%b%Y')'例えば正常に動作するはずです – Sotos

答えて

2

あなたは長さ24のベクトルを持っていますが、25日の日付として"%Y-%m-%d"を追加している。ymd()あなたは `フォーマットを言及する必要があるのはなぜ"%Y-%m-%d"

> lubridate::ymd("2017-1-1") 
[1] "2017-01-01" 
> lubridate::ymd("2017-1-1", "%Y-%m-%d") 
[1] "2017-01-01" NA   
Warning message: 
1 failed to parse. 
関連する問題