2012-04-25 21 views
35

将来の日付を見つけるために、日を追加したい日付があります。R日付に日を追加する

たとえば、2001年1月1日より45日後の日付はどのように見えますか?

答えて

53

使用+

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

ただ、多くの貢献のパッケージの一つで、ベースR、または日付機能から

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

を使用しています。私のRcppBDTパッケージは、指定された月の '第3水曜日'のようなものを含む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> 
19

あなたはまた、他の増減を見つけるために、あなたもseq.Dateseq.POSIXtを使用することができ、他のユーザーによって示される単純な加算に加えて

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

を使用することができます(POSIXtバージョンは、秒、分を行い、時間など):

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

参考:年を引く: 'seq.Date(Sys.Date()、length = 2、by = '-1 year')' –

関連する問題