## File: createCalendar.r ## Description: Create the calendar transitions to be used on KWF predictor ## Author: jc @ September 2015 ## Function: irishCalendar ## Description: Create the calendar with day of the week and daytype. ## (It is the first step, then we need to obtain the transitions) irishCalendar <- function(from, to){ require(timeDate) y0 <- as.character(substr(from, 1, 4)) y1 <- as.character(substr(to, 1, 4)) years <- y0:y1 IRholidays <- c("NewYearsDay", #saint patrick "EasterMonday", "GBMayDay", # may day #june holiday "GBSummerBankHoliday", # august holiday #october holiday "ChristmasDay" #, st stephen day ) jf <- holiday(year = years, Holiday = IRholidays) jf <- sort(unique(jf)) dts <- timeSequence(from = paste(y0, '01', '01', sep = '-'), to = paste(y1, '12', '31', sep = '-')) wday <- dayOfWeek(dts) wdayf <- unname(wday) for(d in 1:length(wdayf)){ if(d == 1) fpos <- 1 if(dts[d] == jf[fpos]){ wdayf[d] <- "Hol" if(fpos < length(jf)) fpos <- fpos + 1 } } res <- data.frame(dow = wday, daytype = wdayf) i0 <- which(rownames(res) == from) i1 <- which(rownames(res) == to) return(res[i0:i1, ]) } # Call irishCalendar to create the calendar. myCal <- irishCalendar(from="2011-01-01", to= "2013-12-31") n <- nrow(myCal) # Obtention of the transitions gr <- paste(myCal$daytype[1:(n - 1)], myCal$daytype[2:n], sep = '_') gr[gr == "Hol_Hol"] <- "Sun_Hol" myCal$gr <- c(gr, "Sat_Sun") # Write output to a file # write.table(file = "calendar_ir.txt", myCal)