2016-07-04 71 views
0

正在使用bizdays软件包生成两个日期之间的公交车日期的向量。R 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等人。

有什么想法?

回答

0

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

bizdays.options$set(default.calendar=Calendar(holidays=fer)) 
+0

Tks HubertL,您的解决方案奏效!必须设置周末: bizdays.options $ set(default.calendar = Calendar(holidays = fer,weekdays = c(“saturday”,“sunday”))) –

1

我也有类似的问题,但接受的答案可能并不适用于我的情况。什么工作对我来说是要确保在矢量holidays第一个和最后一个假期至少覆盖(或超过)提供给bizdays()日期范围:

library(bizdays) 

此作品(from_dateto_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 

这不的holidays的最后一个节日外工作(to_date谎言):

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.