根据不包括周末的数据获取最近5天的日期

时间:2017-07-30 19:46:21

标签: r

我在数据集中有Days,我想根据数据集中的最后一个日期显示接下来的5天,但是使用R代码跳过周末。

下面我已经生成了接下来的5天日期,但是无法跳过周末。

lastValue = tail(dataset$Days,1)
> lastValue+1:5
[1] "2017-07-14" "2017-07-15" "2017-07-16" "2017-07-17" "2017-07-18"

如果我使用Chron功能,我可以删除周末,但如何显示因周末而删除的2个日期,因为我需要显示5天的日期。

dataset [!chron::is.weekend(as.Date(dataset $Days, "%m/%d/%Y")), ]

[1] "2017-07-14" "2017-07-17" "2017-07-18"

由于

1 个答案:

答案 0 :(得分:2)

在连续7天的时间里总有一个周六和一个太阳,所以产生接下来的7个值,然后移除周末,我们必然还有5天。

library(chron)

lastValue <- as.Date("2017-07-13")

next7 <- lastValue + 1:7
next7[!is.weekend(next7)]
## [1] "2017-07-14" "2017-07-17" "2017-07-18" "2017-07-19" "2017-07-20"

如果我们后来决定我们想要接下来的三天,那么我们不能只接受下一个5并删除周末,因为连续5天的星期六和太阳天数可以是0,1或2所以改为使用5,然后在取消周末日后剩下的第3个。

next5 <- lastValue + 1:5
head(next5[!is.weekend(next5)], 3)
## [1] "2017-07-14" "2017-07-17" "2017-07-18"