2016-07-14 8 views
0

hinzu Ich möchte Tage zu einem Datum in R hinzufügen, außer samstags und sonntags und bestimmten Feiertagen. Angenommen, ich habe eine dateset:Fügen Sie Werktage ohne Samstag Sonntag und bestimmte Feiertage in R

d <- dmy("25-7-2016","26-7-2016") 
days <- c(3:4) 
data <- data.frame(d,days) 
data 

Ich möchte #days (Tage Spalte) zu einem Zeitpunkt (d Spalte) hinzufügen Ich habe den folgenden Code versucht:

library(bizdays) 
library(lubridate) 
cal <- Calendar(weekdays=c('sunday', 'saturday')) 
data$f <- offset(d, days, cal) 
data 

Ich kann die Tage ohne unter Berücksichtigung von Samstagen und Sonntagen. Aber ich möchte einen bestimmten Feiertag, das heißt 27-7-2016, ausschließen. Ich habe versucht, diesen speziellen Urlaub zu integrieren, aber einen Fehler zu bekommen. Der Code, den ich ausprobiert habe, ist wie folgt:

holiday <- dmy("27-7-2016") 
cal <- Calendar(holiday,weekdays=c('sunday', 'saturday')) 
data$f <- offset(d, days, cal) 
data 

Könnten Sie bitte helfen Sie mir zu bekommen ist gelöst. Danke im Voraus!

Antwort

0

Works, wenn Sie einen start.date und end.date hinzufügen:

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 

Sie Gets:

  d days   f 
1 2016-07-25 3 2016-07-29 
2 2016-07-26 4 2016-08-02 

FYI, gibt Calendar eine Warnmeldung:

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