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!") }