使用“+”运算符增加日期(或日期时间)时,如何指定增量以天(或月,或几周或几年)为单位?
> Sys.Date()
[1] "2013-08-23"
> Sys.Date() + 1
[1] "2013-08-24"
> ISOdate(2013,8,23)
[1] "2013-08-23 12:00:00 GMT"
> ISOdate(2013,8,23) + 1
[1] "2013-08-23 12:00:01 GMT"
答案 0 :(得分:7)
使用lubridate::days
> require(lubridate)
> Sys.Date()
[1] "2013-08-23"
> Sys.Date() + days(1)
[1] "2013-08-24"
> ISOdate(2013, 8, 23)
[1] "2013-08-23 12:00:00 GMT"
> ISOdate(2013, 8, 23) + days(1)
[1] "2013-08-24 12:00:00 GMT"
使用lubridate,您还可以使用years()
,seconds()
等,或定义自己的duration
。
答案 1 :(得分:6)
您可以使用 seq 进行一些基本计算:
today = Sys.Date()
fiveWeeksAhead = tail(seq(today, by = 'week', length = 5), 1)
如果您需要更多高级功能,请使用 lubridate 等软件包。
答案 2 :(得分:1)
您可以使用lubridate
添加天,周,月......这是添加一个月和一周的示例:
library(lubridate)
d <- as.Date('2004-01-01')
month(d) <- month(d) + 1
#[1] "2004-02-01"
week(d) <- week(d) + 1
#[1] "2004-02-08"