【问题标题】:lubridate - extract a two digit day from a datelubridate - 从日期中提取两位数的日期
【发布时间】:2018-05-21 22:55:12
【问题描述】:

我需要从日期中提取两位数的天数。

例如:

date <- as.Date(01-01-2016)
  • year(date) 会给出“2016”
  • month(date) 将产生“1”
  • day(date) 将返回“1”

我希望 month()day() 返回“01”

标准的 %D 或 %M,似乎在这里不起作用。任何建议将不胜感激!

【问题讨论】:

    标签: r tidyr lubridate


    【解决方案1】:

    假设您的“日期”是日期格式,那么 format.Date() 函数应该可以解决问题:

    format.Date(date, "%m")
    

    注意:在您的问题中:

    date <- as.Date(01-01-2016)
    

    不会以日期格式返回“日期”。它将返回错误,因为您提供给 as.Date 的参数被视为数字。您可能希望将日期作为字符串提供并指定其写入格式,例如:

    date <- as.Date("01-01-2016", format = "%m-%d-%Y") 
    format.Date(date, "%m")
    

    如果不指定格式,as.Date会尝试格式“%Y-%m-%d”。

    【讨论】:

      【解决方案2】:

      你可以使用substr(yourdate, starPosition, endPosition):

      DATE <- 2020-09-01
              12345678**9***10*
      
      DAY2DIGITS <- substr(DATE, **9**, *10*)
      
      DAY2DIGITS = 01
      

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 2011-02-17
        • 2016-03-27
        • 2023-03-24
        • 1970-01-01
        • 2019-03-20
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多