web-dev-qa-db-ja.com

R日付に日を追加する

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

たとえば、2001年1月1日から45日後の日付を見つけるにはどうすればよいですか?

49
screechOwl

+を使用

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

また使用することができます

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

使うだけ

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

ベースRから、または寄贈された多くのパッケージのいずれかの日付機能。 My RcppBDT パッケージは、特定の月の「第3水曜日の日付」などを含むBoost Date_Timeの機能をラップします。

Edit:そして、@ 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> 
10

他の人が示した単純な追加に加えて、seq.Date または seq.POSIXt他の増分または減分を見つけます(POSIXtバージョンは、秒、分、時間などを行います)。

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