Lista dni wolnych od pracy w Polsce

Pobranie i uruchomienie bibiloteki

## install.packages("timeDate") 
library(timeDate)

Stworzenie ramki z lista swiat

Swieto Trzech Króli, jako dzień wolny od pracy, obowiazuje od 1 stycznia 2011 roku

year_from = 2011
year_to = 2027
lista_swiat <- rbind(
  data.frame(CorpusChristi(year_from:year_to), swieto = "Boze Cialo"),
  data.frame(Easter(year_from:year_to), swieto = "Wielkanoc"),
  data.frame(EasterMonday(year_from:year_to), swieto = "Wielkanocny Poniedzialek"),
  data.frame(TrinitySunday(year_from:year_to), swieto = "Zielone Swiatki"),
  data.frame(timeCalendar(year_from:year_to, m = 1, d = 1), swieto = "Nowy Rok"),
  data.frame(timeCalendar(year_from:year_to, m = 1, d = 6), swieto = "Trzech Kroli"),
  data.frame(timeCalendar(year_from:year_to, m = 5, d = 1), swieto = "Swieto Pracy"),
  data.frame(timeCalendar(year_from:year_to, m = 5, d = 3), swieto = "Swieto Konstytucji 3 maja"),
  data.frame(timeCalendar(year_from:year_to, m = 8, d = 15), swieto = "Swieto Wniebowziecia Maryi Panny"),
  data.frame(timeCalendar(year_from:year_to, m = 11, d = 1), swieto = "Wszystkich swietych"),
  data.frame(timeCalendar(year_from:year_to, m = 11, d = 11), swieto = "Dzien Niepodleglosci"),
  data.frame(timeCalendar(year_from:year_to, m = 12, d = 25), swieto = "Boze Narodzenie"),
  data.frame("data" = timeCalendar(year_from:year_to, m = 12, d = 26), swieto = "Boze Narodzenie")
)

colnames(lista_swiat)[1] <- "data"
lista_swiat$data <-as.Date(lista_swiat$data)
lista_swiat$weekday <- weekdays(lista_swiat$data)

Aby sprawdzic kilka pierwszych rekordow

head(lista_swiat)
##         data     swieto  weekday
## 1 2011-06-23 Boze Cialo Thursday
## 2 2012-06-07 Boze Cialo Thursday
## 3 2013-05-30 Boze Cialo Thursday
## 4 2014-06-19 Boze Cialo Thursday
## 5 2015-06-04 Boze Cialo Thursday
## 6 2016-05-26 Boze Cialo Thursday

Nazwy dni tygodni mamy w jezyku angielskim, aby zmienic na polski, skorzystam z instrukcji If then else. z biblioteki sqldf

## install.packages("sqldf") 
library(sqldf)
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
lista_swiat_pl <- sqldf("select  data , swieto,
      case when weekday = 'Monday' then 'Poniedzialek'
when weekday = 'Tuesday' then 'Wtorek'
when weekday = 'Wednesday' then 'Sroda'
when weekday = 'Thursday' then 'Czwartek'
when weekday = 'Friday' then 'Czwartek'
when weekday = 'Saturday' then 'Sobota'
when weekday = 'Sunday' then 'Niedziela'
else weekday end  as Dzien_Tygodnia
      from lista_swiat
order by data")
## Loading required package: tcltk
## Warning: Quoted identifiers should have class SQL, use DBI::SQL() if the
## caller performs the quoting.
head(lista_swiat_pl)
##         data                    swieto Dzien_Tygodnia
## 1 2011-01-01                  Nowy Rok         Sobota
## 2 2011-01-06              Trzech Kroli       Czwartek
## 3 2011-04-24                 Wielkanoc      Niedziela
## 4 2011-04-25  Wielkanocny Poniedzialek   Poniedzialek
## 5 2011-05-01              Swieto Pracy      Niedziela
## 6 2011-05-03 Swieto Konstytucji 3 maja         Wtorek

Aby zapisac

write.csv(lista_swiat_pl, "lista_swiat_pl.csv", row.names =  FALSE)