2017-07-30 115 views
0

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

下面我已经生成了未来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" 

如果我使用代上的功能,我可以除去周末,但如何显示2,删除,因为周末,因为我需要显示5天数日期更日期。

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

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

感谢

+0

相关:在lubridate添加15个工作日(https://stackoverflow.com/questions/26749336/adding-15-business-days-in-lubridate) – Henrik

+0

请查看[降价求助] (https://stackoverflow.com/editing-help)并将代码示例放在代码块中。 –

回答

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" 
+0

非常感谢,它有助于:) –