【问题标题】:R adding days to a date [duplicate]R将日期添加到日期[重复]
【发布时间】:2012-05-06 12:19:46
【问题描述】:

我有一个日期,我想添加天数以便找到未来的日期。

例如,我如何找到 2001 年 1 月 1 日之后 45 天的日期?

【问题讨论】:

    标签: r datetime date


    【解决方案1】:

    使用 +

    > as.Date("2001-01-01") + 45
    [1] "2001-02-15"
    

    【讨论】:

      【解决方案2】:

      你也可以使用

      library(lubridate)
      dmy("1/1/2001") + days(45)
      

      【讨论】:

      • 如果您经常处理日期,那么 lubridate 库是您的朋友。 @johannes 的回答显示了这是多么直观。
      【解决方案3】:

      除了别人展示的简单加法,还可以使用seq.Dateseq.POSIXt求其他增量或减量(POSIXt版本做秒、分、小时等):

      > seq.Date( Sys.Date(), length=2, by='3 months' )[2]
      [1] "2012-07-25"
      

      【讨论】:

      • 供参考:减去一年:seq.Date(Sys.Date(), length = 2, by = '-1 year')
      【解决方案4】:

      随便用

       as.Date("2001-01-01") + 45
      

      来自基本 R,或许多贡献包之一中的日期功能。我的 RcppBDT 包包含来自 Boost Date_Time 的功能,包括给定月份中的“第三个星期三的日期”。

      编辑:在@Andrie 的怂恿下,这里有更多来自RcppBDT 的内容(这主要是Rcpp 模块的测试用例,真的)。

      R> library(RcppBDT)
      Loading required package: Rcpp
      R> 
      R> str(bdt)
      Reference class 'Rcpp_date' [package ".GlobalEnv"] with 0 fields
       and 42 methods, of which 31 are possibly relevant:
         addDays, finalize, fromDate, getDate, getDay, getDayOfWeek, getDayOfYear, 
         getEndOfBizWeek, getEndOfMonth, getFirstDayOfWeekAfter,
         getFirstDayOfWeekInMonth, getFirstOfNextMonth, getIMMDate, getJulian, 
         getLastDayOfWeekBefore, getLastDayOfWeekInMonth, getLocalClock, getModJulian,
         getMonth, getNthDayOfWeek, getUTC, getWeekNumber, getYear, initialize, 
         setEndOfBizWeek, setEndOfMonth, setFirstOfNextMonth, setFromLocalClock,
         setFromUTC, setIMMDate, subtractDays
      R> bdt$fromDate( as.Date("2001-01-01") )
      R> bdt$addDays( 45 )
      R> print(bdt)
      [1] "2001-02-15"
      R> 
      

      【讨论】:

        猜你喜欢
        • 2013-11-18
        • 2011-10-21
        • 2012-08-18
        • 2023-04-08
        • 2014-01-26
        • 2018-02-14
        • 2014-11-28
        • 2023-03-08
        • 1970-01-01
        相关资源
        最近更新 更多