Narzędzia użytkownika

Narzędzia witryny


ewdprocedury_pobieranie_bazy_szkol

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
ewdprocedury_pobieranie_bazy_szkol [2014/07/31 19:34]
t.zoltak
ewdprocedury_pobieranie_bazy_szkol [2015/07/10 17:03] (aktualna)
t.zoltak
Linia 1: Linia 1:
 +====== 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.
  
-====== Eksport ​z bazy danych o szkołach ======+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).
  
 <​code>​ <​code>​
-rodzajSzkoly ​= "gimn." # "​gimn."​|"​LO"​|"​LP"​|"​T"​ +typSzkoly ​= "typ" ​ dozwolone wartości: ​"​gimn."​"​LO"​"​LP"​"​T"​ 
-plikWyjscie="baza gimn.csv" ​ # dostosować +zapis     = "nazwa_pliku.csv"
-zrodloODBC = "​EWD" ​          # dostosować+
  
-library(RODBCext) +setwd("​~/​Desktop/"​
-setwd("​setwd("​~/​Desktop/"​)+library(EWDdane)
  
- +dozwoloneTypy ​= c("​gimn.",​ "​LO",​ "​LP",​ "​T"​) 
-dozwoloneRodzaje ​= c("​gimn.",​ "​LO",​ "​LP",​ "​T"​) +if (typSzkoly %in% dozwoloneTypy) { 
-przyrostki ​      c("​g" ​   ​, "lo", ​"​lo"​"​t"​) +  daneSzkol ​pobierz_dane_szkol(2006:​as.numeric(format(Sys.time(), "%Y")), 
-if (rodzajSzkoly ​%indozwoloneRodzaje{ +                                 ​typSzkolyidOke = FALSE, daneAdresowe = TRUE) %>% 
-  ​przyr = przyrostki[dozwoloneRodzaje ​== rodzajSzkoly] +    filter(id_szkoly > 0
-  ​odbcConnect(zrodloODBC+  ​lata sort(unique(daneSzkol$rok),​ decreasing ​TRUE) 
-  ​szkoly ​sqlExecute( +  ​daneSzkol ​select(daneSzkol, -rok, -wielkosc_miejscowosci,​ -rodzaj_gminy,​ 
-    p+                     ​-matura_miedzynarodowa
-    "SELECT rokid_szkoly AS id_szkoly_stronaid_szkoly_ewdid_szkoly_oke+  ​daneSzkol ​within(daneSzkol{ 
-      ​typ_szkolypublicznadla_doroslychspecjalnaprzyszpitalna+    ​oke = c("​Wrocław", ​"​Gdańsk"​"​Kraków"​"​Poznań",​ "​Łódź",​ "​Kraków"​
-      nazwaadresmiejscowoscpnapocztawielkosc_miejscowosci AS l_mieszk+            "​Warszawa"​"​Wrocław"​"​Kraków"​"​Łomża"​"​Gdańsk",​ "​Jaworzno"​
-      ​id_wojewodztwa AS wojewodztwoid_powiatu AS powiatid_gminy AS gmina, +            "​Łódź"​"​Łomża"​"​Poznań"​"​Poznań"​)[floor(teryt_szkoly / 10^4) / 2] 
-      ​matura_miedzynarodowa ​AS ib +  }) 
-    ​FROM (SELECT * FROM szkoly WHERE typ_szkoly= ?AS szkoly +  for (i in lata) { 
-      ​JOIN szkoly_dane USING (id_szkoly+    kody = pobierz_dane_szkol(itypSzkolyidOke = TRUEdaneAdresowe = FALSE) 
-    ​WHERE id_szkoly ​> 0 AND rok > 2005 +    kody = select(kodyid_szkolyid_szkoly_oke, matura_miedzynarodowa) 
-    ​ORDER BY id_szkoly_ewdrok;", +    ​if (!(typSzkoly %in% c("​LO",​ "​LP",​ "​T"​))) { 
-    ​rodzajSzkoly,​ +      ​kody = select(kody, -matura_miedzynarodowa
-    fetch=TstringsAsFactors=F +    ​
-  ​) +    maska = names(kody) != "id_szkoly" 
-  ​odbcClose(p) +    ​names(kody)[maska] = paste0(names(kody)[maska]"_", ​i) 
-  +    ​daneSzkol ​suppressMessages(left_join(daneSzkolkody)) 
-  ​if (rodzajSzkoly=="gimn.") szkoly = szkoly[, names(szkoly!= "ib"]+  ​} 
 +  ​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!"​)
 } }
- 
- 
- 
 </​code>​ </​code>​
  
ewdprocedury_pobieranie_bazy_szkol.1406828064.txt.gz · ostatnio zmienione: 2014/07/31 19:34 przez t.zoltak