Lubridate parse_date_time cant处理日期混合的缩写月份名称

时间:2017-10-18 15:24:03

标签: r date lubridate

我有一个日期(字符格式)的数据框列,其中包含日期的混合:

("Apr11", "2005-01-01", "Apr13", "2009-12-01")

我尝试使用lubridate parse_date_time()函数来解析这些日期,如下所示:

parse_date_time(x = variable, orders = c('y-m-d', 'by'), locale='en_US.UTF-8')

虽然 parse_date_time()能够使用格式'y-m-d'解析日期,但无法使用'by'格式解析日期。

然后我尝试尝试一个玩具示例,但没有成功:

z <- "Apr11"
parse_date_time(z,"by")

我一直收到同样的错误:

[1] NA
Warning message:
All formats failed to parse. No formats found. 

我阅读了文档并尝试了许多不同的事情,但没有运气:

  • 我将语言环境设置为 default_locale()功能。
  • 我尝试了B而不是b
  • 我尝试将确切选项设置为True,如文档
  • 中的注释所示
  • 我尝试了 parse_date_time2()函数,该函数适用于玩具示例,但是在日期混合的原始数据框架上无法工作(这会发出警告消息 - 提供多个订单。仅使用第一个订单。)

我意识到b对区域设置非常敏感,但我在这里看不到问题 - 这是 default_locale()

的输出
<locale>
Numbers:  123,456.78
Formats:  %AD / %AT
Timezone: UTC
Encoding: UTF-8
<date_names>
Days:   Sunday (Sun), Monday (Mon), Tuesday (Tue), Wednesday (Wed), Thursday (Thu), Friday (Fri), Saturday (Sat)
Months: January (Jan), February (Feb), March (Mar), April (Apr), May (May), June (Jun), July (Jul), August (Aug), September (Sep),
    October (Oct), November (Nov), December (Dec)
AM/PM:  AM/PM

这是 Sys.getlocale()

的输出
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"

我还查看了stackoverflow上的各种帖子,但没有任何帮助:

提前致谢!

0 个答案:

没有答案