我在数据集中有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"
由于
答案 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"