Narzędzia użytkownika

Narzędzia witryny


ewdprocedury_pobieranie_bazy_szkol

Eksport z bazy danych informacji o szkołach

Skrypt pobiera informacje o szkołach z bazy korzystając z funkcji pakietu EWDdane. Na raz można pobrać informacje tylko o szkołach jednego typu.

Starsze rozwiązania, wykorzystujące ODBC i odtwarzają konwencję nazywania kolumn z bazy szkół prowadzonej kiedyś jeszcze w pliku SPSSa, można odszukać w poprzednich wersjach strony (nie ma gwarancji, że będą działać na obecnej wersji bazy).

typSzkoly = "typ"  # dozwolone wartości: "gimn.", "LO", "LP", "T"
zapis     = "nazwa_pliku.csv"

setwd("~/Desktop/")
library(EWDdane)

dozwoloneTypy = c("gimn.", "LO", "LP", "T")
if (typSzkoly %in% dozwoloneTypy) {
  daneSzkol = pobierz_dane_szkol(2006:as.numeric(format(Sys.time(), "%Y")),
                                 typSzkoly, idOke = FALSE, daneAdresowe = TRUE) %>%
    filter(id_szkoly > 0)
  lata = sort(unique(daneSzkol$rok), decreasing = TRUE)
  daneSzkol = select(daneSzkol, -rok, -wielkosc_miejscowosci, -rodzaj_gminy,
                     -matura_miedzynarodowa)
  daneSzkol = within(daneSzkol, {
    oke = c("Wrocław", "Gdańsk", "Kraków", "Poznań", "Łódź", "Kraków",
            "Warszawa", "Wrocław", "Kraków", "Łomża", "Gdańsk", "Jaworzno",
            "Łódź", "Łomża", "Poznań", "Poznań")[floor(teryt_szkoly / 10^4) / 2]
  })
  for (i in lata) {
    kody = pobierz_dane_szkol(i, typSzkoly, idOke = TRUE, daneAdresowe = FALSE)
    kody = select(kody, id_szkoly, id_szkoly_oke, matura_miedzynarodowa)
    if (!(typSzkoly %in% c("LO", "LP", "T"))) {
      kody = select(kody, -matura_miedzynarodowa)
    }
    maska = names(kody) != "id_szkoly"
    names(kody)[maska] = paste0(names(kody)[maska], "_", i)
    daneSzkol = suppressMessages(left_join(daneSzkol, kody))
  }
  rm(kody)
  maska = unlist(lapply(daneSzkol, class)) == "logical"
  daneSzkol[, maska] = lapply(daneSzkol[, maska], as.numeric)
  write.csv2(daneSzkol, zapis, row.names = FALSE, na = "", fileEncoding = "UTF-8")
} else {
  stop("Niedozwolony typ szkoły!")
}
ewdprocedury_pobieranie_bazy_szkol.txt · ostatnio zmienione: 2015/07/10 17:03 przez t.zoltak