【问题标题】:3 letters month and 2 digits year format in RR中的3个字母月份和2位数字年份格式
【发布时间】:2018-10-01 14:19:03
【问题描述】:

我正在尝试将以下格式转换为日期:

as.Date('Mar.17', format = '%b.%y')

但它返回 NA。

我错过了什么?

更新,我预计会在 2017 年 3 月,而不是 2018 年

【问题讨论】:

  • 除非有月份、日期和年份,否则它不是日期。
  • 可以试试:as.Date(paste0('Mar.17',1), format = '%b.%y%d')

标签: r date format


【解决方案1】:

应该是:

as.Date('Mar.17', format = '%b.%d')

【讨论】:

  • ...如果是当前年份。
  • 谢谢,我希望它转换为 2017 年 3 月 1 日
  • 你不能指望 R 明白你想要 3 月 1 日;那么 lubridate::dmy(paste(1, 'Mar.17') 怎么样(我更喜欢 lubridate 函数来处理日期变量)
【解决方案2】:

来自zoo 包的as.yearmon 将起到作用,并按照OP 的预期提供date(Mar 2017)

library(zoo)

as.yearmon("Mar.17", "%b.%y")
#[1] "Mar 2017"

另一种将其转换为1 March 2017

as.Date(as.yearmon("Mar.17", "%b.%y"), frac = 0)
#[1] "2017-03-01"

【讨论】:

    【解决方案3】:

    假设17 部分是年份,您可以使用sub 添加天数使其成为实际日期。

    as.Date(sub("\\.", "01", "Mar.17"), "%b%d%y")
    # [1] "2017-03-01"
    

    【讨论】:

      【解决方案4】:

      你需要 %b 月份格式的点,至少在我的电脑上

      as.Date(paste0( "01",'mar.2017'), format = '%d%b%Y')
      

      "2017-03-01"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 2021-03-23
        相关资源
        最近更新 更多