Добавить рабочие дни без субботы и воскресенья и специальные праздники в R

Я хочу добавить дни к дате в R, кроме субботы и воскресенья и определенных праздников. Предположим, у меня есть набор дат:

d <- dmy("25-7-2016","26-7-2016")
days <- c(3:4) 
data <- data.frame(d,days)
data

Я хочу добавить #days (дни столбца) к дате (столбец d) Я попробовал следующий код:

library(bizdays)
library(lubridate)
cal <- Calendar(weekdays=c('sunday', 'saturday'))
data$f <- offset(d, days, cal)
data

Я могу получить дни без учета субботы и воскресенья. Но я хочу исключить конкретный праздник, т.е. 27-7-2016. Я пытался включить этот конкретный праздник, но получаю ошибку. Код, который я попробовал, выглядит следующим образом:

holiday <- dmy("27-7-2016")
cal <- Calendar(holiday,weekdays=c('sunday', 'saturday'))
data$f <- offset(d, days, cal)
data

Не могли бы вы помочь мне, чтобы получить это решено. Спасибо в ожидании!

1 ответ

Работает, если добавить start.date а также end.date:

holiday <- dmy("27-7-2016")
cal <- Calendar(holidays = holiday,
                start.date = dmy("01-07-2016"),
                end.date = dmy("01-09-2016"), 
                weekdays=c('sunday', 'saturday'))
data$f <- offset(d, days, cal)
data

Получает вас:

           d days          f
1 2016-07-25    3 2016-07-29
2 2016-07-26    4 2016-08-02

FYI, Calendar выдает предупреждающее сообщение:

Warning message:
In Calendar(holidays = holiday, start.date = dmy("01-07-2016"),  :
This function will be deprecated, use create.calendar instead.
Другие вопросы по тегам