我正在尝试使用bizdays包来计算一周中不包括周末和节假日的营业天数。
下面我有一个简单的例子,评估2018年12月24日到2018年12月28日之间的工作日数量,其中24日和25日为假日。
我预计bizday函数将返回3天(26、27和28天),但它将返回2天。
更让我困惑的是,如果我在一周内的五个工作日调用is.bizday,我会得到3个TRUE和2个FALSE (正如我所期望的)。
有人知道我做错了什么吗?
如果这是预期的工作,有没有一个好的工作,以获得两个日期之间的所有日期?
代码如下:
> 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编辑:
我在Calculating Business Days上找到了一个不涉及bizdays包的答案。
我把最初的问题留下来,因为bizday包有令人难以置信的潜力,我仍然很好奇为什么它不能工作。
发布于 2019-07-27 19:03:43
您应该使用option financial=FALSE inside create.calendar函数为每次计算添加1天:
cal <- create.calendar('mycal', holidays=holidays, weekdays=c("saturday", "sunday"), start.date = calfr, end.date = calto,
financial=FALSE)https://stackoverflow.com/questions/54078861
复制相似问题