Mam termin, który chciałbym dodać dni, aby znaleźć jakiś przyszły termin.R dodawanie dni do daty
np. Jak znaleźć datę 45 dni po 1/1/2001?
Mam termin, który chciałbym dodać dni, aby znaleźć jakiś przyszły termin.R dodawanie dni do daty
np. Jak znaleźć datę 45 dni po 1/1/2001?
Wykorzystanie +
> as.Date("2001-01-01") + 45
[1] "2001-02-15"
Wystarczy użyć
as.Date("2001-01-01") + 45
od podstawy R, lub data funkcjonalności w jednym z wielu przyczyniły pakietach. Moja funkcja opakowywania RcppBDT od Boost Date_Time, w tym takie rzeczy jak "date of third Wednesday" w danym miesiącu.
Edycja: I włączany przez @Andrie, tutaj jest nieco więcej od RcppBDT (co jest w większości przypadków przypadkiem testowym dla modułów Rcpp, naprawdę).
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>
Można również użyć
library(lubridate)
dmy("1/1/2001") + days(45)
Oprócz prostego Oprócz przedstawionego przez innych, można także użyć seq.Date
lub seq.POSIXt
znaleźć inne zwiększa lub zmniejsza (wersja POSIXt robi sekundy, minuty, godzin, itp.):
> seq.Date(Sys.Date(), length=2, by='3 months')[2]
[1] "2012-07-25"
Dla odniesienia: odjąć rok: 'seq.Date (Sys.Date(), długość = 2, przez = '-1 rok')' –