在星期六星期日和特定节假日添加工作日

时间:2016-07-14 08:17:56

标签: r date lubridate

除了星期六,星期日和特定假期外,我想在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 个答案:

答案 0 :(得分:0)

如果您添加start.dateend.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

仅供参考,Calendar会发出警告信息:

Warning message:
In Calendar(holidays = holiday, start.date = dmy("01-07-2016"),  :
This function will be deprecated, use create.calendar instead.