mdy {lubridate}无法识别“1月”

时间:2016-05-01 19:32:34

标签: r lubridate

我正在使用“January131973”格式的出生日期列表。要从此字符串中获取日期,我使用mdy库中的lubridate函数。奇怪的是,代码仅在1月份的日期返回NA,但在其他月份工作正常,如下所示

> mdy("January131973")
[1] NA
Warning message:
All formats failed to parse. No formats found. 
> mdy("April241973")
[1] "1973-04-24"

数据涵盖所有月份和日期,以及从1971年到1990年的年份。但错误仅发生在1月份的日期。我已经解决了输入字符串以获得“13January1973”并继续使用dmy函数,这解决了手头的问题。 (ymd也完美无缺。)​​

但是,如果可以证实我没有忽略任何潜在的冲突等,那么下次会有所帮助,也可以帮助识别其他地方看不见的问题。

这是我尝试检查不同组合的测试代码

library(tidyr)
library(lubridate)
x <- data.frame(mmm=month.name, dd=c(15:26), yyyy=c(1973:1984))
x_mdy <- unite(x, test, mmm,dd,yyyy, sep = "",remove = FALSE)
lapply(x_mdy$test, mdy)
x_dmy <- unite(x, test, dd,mmm,yyyy, sep = "", remove = FALSE)
lapply(x_dmy$test, dmy)
x_ymd <- unite(x, test, yyyy,mmm,dd, sep = "", remove = FALSE)
lapply(x_ymd$test, ymd)

运行上述代码后,我只在将mdy与“1月”一起使用时遇到了问题。另请注意,月份名称的缩写形式也会在上面的df创建中给出相同的错误(mmm=month.abb。)

对此行为的任何澄清表示赞赏。

0 个答案:

没有答案