6

当使用“+”运算符增加日期(或日期时间)时,如何指定增量以天(或月、周或年)为单位?

> 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"
4

3 回答 3

8

利用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.

于 2013-08-23T18:21:11.083 回答
6

您可以使用seq进行一些基本计算:

today = Sys.Date()
fiveWeeksAhead = tail(seq(today, by = 'week', length = 5), 1)

如果您需要更高级的功能,或者使用像lubridate这样的包。

于 2013-08-23T18:21:15.230 回答
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"
于 2013-08-23T18:24:10.793 回答