【发布时间】:2012-05-06 12:19:46
【问题描述】:
我有一个日期,我想添加天数以便找到未来的日期。
例如,我如何找到 2001 年 1 月 1 日之后 45 天的日期?
【问题讨论】:
我有一个日期,我想添加天数以便找到未来的日期。
例如,我如何找到 2001 年 1 月 1 日之后 45 天的日期?
【问题讨论】:
使用 +
> as.Date("2001-01-01") + 45
[1] "2001-02-15"
【讨论】:
你也可以使用
library(lubridate)
dmy("1/1/2001") + days(45)
【讨论】:
除了别人展示的简单加法,还可以使用seq.Date或seq.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')
随便用
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>
【讨论】: