2017-07-30 127 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

非常感謝,它有助於:) –