J'ai une date à laquelle j'aimerais ajouter des jours afin de trouver une date future.
par exemple, comment pourrais-je trouver la date qui est de 45 jours après le 1/1/2001?
Utilisez +
> as.Date("2001-01-01") + 45
[1] "2001-02-15"
Vous pouvez également utiliser
library(lubridate)
dmy("1/1/2001") + days(45)
Utilisez simplement
as.Date("2001-01-01") + 45
depuis la base R ou la fonctionnalité de date dans l'un des nombreux packages contribués. Mon RcppBDT package encapsule les fonctionnalités de Boost Date_Time, y compris des choses comme la "date du troisième mercredi" dans un mois donné.
Edit: Et poussé par @Andrie, voici un peu plus de RcppBDT (qui est principalement un cas de test pour Rcpp modules, vraiment).
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>
En plus de l'ajout simple montré par d'autres, vous pouvez également utiliser seq.Date
ou seq.POSIXt
pour trouver d'autres incréments ou diminutions (la version POSIXt fait secondes, minutes, heures, etc.):
> seq.Date( Sys.Date(), length=2, by='3 months' )[2]
[1] "2012-07-25"