1

我想使用 bizdays 包生成一个向量,其中包含两个日期之间的巴士日。

fer = as.data.frame(as.Date(fer[1:938]))

#Define default calendar
bizdays.options$set(default.calendar=fer)

dt1 = as.Date(Sys.Date())
dt2 = as.Date(Sys.Date()-(365*10)) #sample 10 year window

#Create date vector
datas = bizseq(dt2, dt1)

我收到此错误:“bizseq.Date(dt2, dt1) 中的错误:给定日期超出范围。” bizdays 等人的任何功能都有相同的行为。

有任何想法吗?

4

2 回答 2

3

我遇到了类似的问题,但无法将接受的答案应用于我的案例。对我有用的是确保向量中的第一个和最后一个假期holidays至少涵盖(或超过)提供给的日期范围bizdays()

   library(bizdays)

这有效(from_date并且to_date都在由提供的第一个和最后一个假期内holidays):

   holidays <- c("2016-08-10", "2016-08-13")

    from_date <- "2016-08-11"
    to_date <- "2016-08-12"

    cal <- Calendar(holidays, weekdays=c('sunday', 'saturday'))
    bizdays(from_date, to_date, cal)

    #1

这不起作用(to_date位于最后一个假期之外holidays):

    holidays <- c("2016-08-10", "2016-08-11")

    from_date <- "2016-08-11"
    to_date <- "2016-08-12"

    cal <- Calendar(holidays, weekdays=c('sunday', 'saturday'))
    bizdays(from_date, to_date, cal)

   # Error in bizdays.Date(from, to, cal) : Given date out of range.
于 2016-08-10T12:26:58.167 回答
0

如果fer是假期,您可以尝试:

bizdays.options$set(default.calendar=Calendar(holidays=fer))
于 2016-07-04T22:12:41.330 回答