【问题标题】:Parsing Ambiguous Dates in R在 R 中解析不明确的日期
【发布时间】:2017-05-15 16:23:52
【问题描述】:

我想知道在解析日期时如何找出字符串的哪一部分是月,字符串的哪一部分是日。

问题是 01-06-2017 可以是 6 月 1 日,也可以是 1 月 6 日。如何正确解析它。在印度,我们主要将日期写为日月年,在西方,主要是月日年,当我有混合数据时,我如何估算哪个是月份,哪个是日期

因为数据不够干净,有时有mdy格式的日期,有时是dmy格式的日期,如果数字小于12,很难知道是一天还是一个月

11/1/11 可以是 2011 年 1 月 11 日或 2011 年 11 月 1 日

例子

我正在使用 lubridate 包,我有这种格式的日期

 library(lubridate)
fundates2=c("1Apr2017","12-30-2017","1/6/17")

    fun3=dmy(fundates2)
## Warning: 1 failed to parse.
    fun3
## [1] "2017-04-01" NA           "2017-06-01"
fun4=mdy(fundates2)
## Warning: 1 failed to parse.
fun4
## [1] NA           "2017-12-30" "2017-01-06"

【问题讨论】:

  • 感谢您的编辑。您能否添加更多代码,以便人们可以清楚地看到您的问题是什么?老实说,我仍然不明白为什么您需要知道字符串的哪一部分代表日和月。请详细说明。

标签: r date


【解决方案1】:

嗯,你从你的上下文中知道哪一个是正确的。

要检查您的日期是哪一天,您只需添加 1 天即可:

  • fun3:

    fun3 + 1

    [1]“2017-04-02”不适用“2017-06-02”

可以看到月份是06。

  • fun4:

    乐趣4 + 1

    [1] 不适用 "2017-12-31" "2017-01-07"

你可以看到月份是 01

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2011-10-02
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    相关资源
    最近更新 更多