使用R package lubridate转换字符日期无法解析

时间:2017-12-18 12:37:43

标签: r date lubridate

我尝试将以下字符向量转换为日期类。

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

我无法理解为什么replacement has 25 rows,而数据实际上有24行(两年),哪个日期与1 failed to parse.的日期差异很大?

也许有用的东西要知道,我创建的最初必须创建(concatonated和month.abbmonth向量我自己:两列,一个月列格式&#34; jan&#39; ,&#34; feb&#34;等等和格式化的年份列&#34; 2016&#34;和&#34; 2017&#34;。

1 个答案:

答案 0 :(得分:2)

您有一个长度为24的向量,但您要将"%Y-%m-%d"添加为第25个日期。 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.