尝试使用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 et al。
的行为相同任何想法?
答案 0 :(得分:2)
我有类似的问题,但无法将接受的答案应用于我的案例。对我有用的是确保向量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.
答案 1 :(得分:0)
如果fer
是假期,您可以尝试:
bizdays.options$set(default.calendar=Calendar(holidays=fer))