R: найти разницу в рабочих днях
Возникают проблемы с вычислением разницы дат в рабочих днях, т.е. исключаются выходные дни, например, функция сетевых дней в Excel.
Вот мои данные.
e <- structure(list(date.pr = structure(c(15909, 15933, 16517, 15961, 15974, 15978), class = "Date"), date.po = structure(c(15909, 15933, 15954, 15961, 15974, 15978), class = "Date")), .Names = c("date.1", "date.2"), class = c("tbl_df", "data.frame"), row.names = c(NA, -6L))
Нашел пакет "bizdays" для этой задачи. Который отлично работает для этого.
> bizdays(e$date.2,e$date.1)
[1] 0 0 563 0 0 0
Но мои данные содержат случаи, когда date.2 до date.1.
e2 <- structure(list(date.pr = structure(c(15909, 15933, 16517, 15961, 5974, 15978, 15978), class = "Date"), date.po = structure(c(15909, 15933, 15954, 15961, 15974, 15978, 15979), class = "Date")), .Names = c("date.1", "date.2"), class = c("tbl_df", "data.frame"), row.names = c(NA, -7L))
Теперь это дает следующую ошибку:
> cal <- Calendar(holidaysANBIMA, weekdays=c("saturday","sunday"))
> bizdays(e2$date.2,e2$date.1,cal)
Error in bizdays.Date(e2$date.2, e2$date.1, cal) :
All from dates must be greater than all to dates.
Я думаю, используя логику ifelse (), но она дает мне ту же ошибку.
> ifelse(e2$date.2 < e2$date.1, NA, bizdays(e2$date.2,e2$date.1,cal))
Error in bizdays.Date(e2$date.2, e2$date.1, cal) :
All from dates must be greater than all to dates.
Помощь приветствуется.