R Package bizdays, дающий неожиданные результаты - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь использовать пакет bizdays R для вычисления количества рабочих дней в неделе, исключая выходные и праздничные дни.

Ниже приведены простые примеры, в которых оценивается количество рабочих дней с 24.12.2008 г. по 28.12.2008 г., а 24 и 25 числа - выходные.

Я ожидаю, что функции bizdays вернутся через 3 дня (26, 27 и 28), но вернутся через 2 дня.

Что меня еще больше смущает, так это то, что я звоню is.bizday за каждый из пяти дней недели в этой неделе, когда я получаю 3 ИСТИНА и 2 ЛОЖЬ (что я и ожидал).

Кто-нибудь знает, что я делаю не так?

Если это работает так, как задумано, есть ли хороший способ найти все дни включительно между двумя датами?

Код ниже:

> library(bizdays)
> 
> holidays<-as.Date(c("2018-12-24", "2018-12-25"))
> 
> calfr<-as.Date("2018-01-01")
> calto<-as.Date("2018-12-31")
> 
> fr<-as.Date("2018-12-24")
> to<-as.Date("2018-12-28")
> 
> 
> cal <- create.calendar('mycal',holidays=holidays, weekdays=c("saturday", "sunday"), start.date = calfr, end.date = calto)
> 
> bizdays(fr,to,cal)
[1] 2
> 
> is.bizday(c('2018-12-24','2018-12-25','2018-12-26','2018-12-27','2018-12-28'), cal)
[1] FALSE FALSE  TRUE  TRUE  TRUE

редактирование:

Я нашел ответ, который не включает пакет bizdays в Расчет рабочих дней .

Я оставляю исходный вопрос, поскольку пакет bizdays обладает невероятным потенциалом, и мне все еще любопытно, почему он не работает.

1 Ответ

0 голосов
/ 27 июля 2019

Вы должны использовать опцию financial=FALSE внутри create.calendar, чтобы добавить 1 день к каждому вычислению:

cal <- create.calendar('mycal', holidays=holidays, weekdays=c("saturday", "sunday"), start.date = calfr, end.date = calto,
    financial=FALSE)
...