Git Product home page Git Product logo

zpd's Introduction

ZPD

Travis-CI Build Status Coverage Status

Pakiet zawierający zestaw funkcji ułatwiających korzystanie z połączonych baz EWD i ZPD.

Uwagi

  1. Baza danych, do której dostęp daje pakiet podlega stałemu rozwojowi, co może powodować niekompatybilność ze starszymi wersjami pakietu. Stąd jeśli zobaczysz nieznany błąd, na początek upewnij się, że korzystasz z najnowszej wersji pakietu.

Od czasu do czasu warto również zapoznać się z zawartością pliku NEWS.

  1. Aby dowiedzieć się więcej o strukturze bazy danych, zapoznaj się z:

Instalacja

Pakiet nie jest (i zapewne nigdy nie będzie) dostępny poprzez CRAN, więc instalować trzeba ze źródeł.

Ponieważ jednak zawiera jedynie kod w R, nie ma potrzeby zaopatrywać się w kompilatory, itp.

Instalacja możliwa jest w dwóch wariantach:

Z użyciem pakietu devtools:

install.packages('devtools') # potrzbne tylko gdy nie jest jeszcze zainstalowany
devtools::install_github('zozlak/ZPD', upgrade = 'ask') # jeśli padnie pytanie "These packages have more recent versions available. Which would you like to update?", właściwa odpowiedź brzmi "CRAN packages only"

Jeśli podczas instalacji napotkasz na błąd, a używasz linuksa sprawdź, czy nie dotyczy Cię ten problem lub przeprowadź "uczciwą instalację ze źródeł" (patrz niżej).

"Uczciwa instalacja ze źródeł":

git clone https://github.com/zozlak/ZPD.git
R CMD INSTALL ZPD

Cytowanie

Jeśli korzystasz z danych udostępnianych przez pakiet ZPD, jako źródło danych zacytuj proszę:

Szaleniec, H., Kondratek, B., Kulon, F., Pokropek, A., Skórska, P., Świst, K., Wołodźko, T. i Żółtak, M. (2015). Porównywalne wyniki egzaminacyjne. Warszawa: Instytut Badań Edukacyjnych.

Sponsorzy

Pakiet został opracowany w ramach projektów systemowych "Badanie efektywności edukacji oraz instytucjonalizacja zaplecza badawczego" oraz "Rozwój metody edukacyjnej wartości dodanej na potrzeby wzmocnienia ewaluacyjnej funkcji egzaminów zewnętrznych", współfinansowanych przez Unię Europejską ze środków Europejskiego Funduszu społecznego, realizowanych przez Instytut Badań Edukacyjnych. KL+IBE+EFS

WIC 2016!

zpd's People

Contributors

zozlak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zpd's Issues

Brak możliwości ściągnięcia danych

library(ZPD) src = polacz() szkoly = pobierz_szkoly(src) s_12 = pobierz_wyniki_egzaminu(src, 'sprawdzian', '', 2012, FALSE) s_12 = inner_join(s_12, szkoly) s_12 = s_12 %>% collect()

Powoduje wywalenia się R. Probówałem też połączyć się bezpośrednio z bazą, ale przykładowe zapytania z widokami również się nie wykonywały.

Moje session info

R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: OS X El Capitan 10.11.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached):
[1] compiler_3.4.2 tools_3.4.2 yaml_2.1.14

Jeszcze jedno dziwne ostrzeżenie

Właściwie to chyba bardziej coś związanego z bazą, niż z pakietem ZPD, ale tu mogę Ci to wygodnie opisać.

W funkcji pobierz_dane_kontekstowe() pakietu EWDdane jest fragment, który służy do sprawdzenia poziomu uprawnień dostępu do bazy, z jakimi została wywołana:
try({ tmp = tbl(src, sql("SELECT * FROM dane_osobowe.obserwacje LIMIT 1")) daneOsobowe = TRUE }, silent = TRUE)

Jeśli src jest połączeniem mającym prawa dostępu do dane_osobowe.obserwacje efektem ubocznym wywołania jest jednak ostrzeżenie o treści:

Warning in result_create(conn@ptr, statement) :
Unknown field type (20344) in column plec

W zasadzie nie przeszkadza to uzyskać pożądanego wyniku (i jak by co, zawsze mogę to wywołanie obłożyć suppressWarnings() ;) ) ale zastanawiam się, skąd się wzięło.

A może zmiana backendu?

Zdaje się, że pakiet RPostgres dojrzał -jest na CRANie i jest używany np. przez pakiet dbplyr. Może by więc na dobre porzucić na jego rzecz RPostgreSQL?

Obsługa błędnej definicji skrótu przez sprawdz_skroty_skal()

Jeśli w ciągu znaków definiujących skrót nie znajdzie się znak '|', to funkcja sprawdz_skroty_skal() sypie się błędem w linii 49 (co jest efektem nieplanowanego wyniku działania strsplit() w linii 44). Niestety komunikat błędu jest mało informatywny, a na dodatek sposób konstrukcji funkcji edytuj_skale(), która woła sprawdz_skroty_skal() - konkretnie zamknięcie wszystkiego w jednym wielkim tryCatch() - skutecznie utrudnia dowiedzenie się nawet tego, że jest to problem właśnie ze sprawdz_skroty_skal().

Przydałoby się sprawdzanie na początku sprawdz_skroty_skal() warunku, czy nie będące brakami danych elementy argumentu 'skroty' zawierają '|', a jak nie, to poplucie się informatywnym błędem.

sprawdz_skroty_skal()

W funkcji sprawdz_skroty_skal() polecenie return() jest o jeden nawias klamrowy za wcześnie i powoduje obecnie wyjście z funkcji już po pierwszym obiegu pętli, bez względu na to, ile skrótów nie było do zdefiniowania.

Warning dotyczący `dbFetch()` w `pobierz_wyniki_egzaminu()`

Przy wywołaniu funkcji pobierz_wyniki_egzaminu() , np. pobierz_wyniki_egzaminu(polacz(), 'matura', 'fizyka rozszerzona', 2017, TRUE) pojawia się ostrzeżenie o treści:

Warning in result_fetch(res@ptr, n = n) :
Don't need to call dbFetch() for statements, only for queries

Błąd połączenia z bazą

Witam
Taki błąd podczas łączenia z bazą za pomocą polacz() się pojawia:

Błąd w poleceniu 'connection_create(names(opts), as.vector(opts))': could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "89.231.23.130" and accepting TCP/IP connections on port 5432?

normalizuj() pluje ostrzeżeniem o nieznanej kolumnie

Wywoływanie funkcji normalizuj powoduje wyskakiwanie ostrzeżenia:

Warning message:
Unknown column 'grupa'

Podejrzewam, że jest to efekt tego, że w wierszu 58. zawężasz obiekt normy do tylko dwóch kolumn - i żadna z nich to nie 'grupa' - ale wiersz 72. masz napisany tak, jakby ta kolumna cały czas tam była.

I jeszcze jedno ostrzeżenie

Wywołanie filtruj_przystapienia() rzuca ostrzeżeniami:

Warning: Missing values are always removed in SQL.
Use MIN(x, na.rm = TRUE) to silence this warning

które precyzyjnie wskazują, co trzeba by zrobić, by ich nie oglądać (w liniach 125 i 128 pliku "filtruj_przystapienia.R")

Błąd w `pobierz_uczniow()`

Wywołanie funkcji pobierz_uczniow() (z parametrem daneOsobowe ustawionym na TRUE) rzuciło mi błędem:

Error in result_create(conn@ptr, statement) :
Failed to prepare query: BŁĄD: kolumna o.rocznik nie istnieje
LINE 3: SELECT o.id_obserwacji, o.plec::text, o.rocznik, oi.id AS...

The database server is down.

Trying to connect to port that postgres is supposed to be listenning on:

$ telnet ewd.ibe.edu.pl 5432
Trying 89.231.23.130...
telnet: Unable to connect to remote host: No route to host

And another error message from http://zaou.ibe.edu.pl/doku.php?id=baza_status

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: No route to host Is the server running on host "10.0.1.7" and accepting TCP/IP connections on port 5432?' in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code:2 Stack trace: #0 /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code(2): PDO->__construct('pgsql: host=10....', 'ewd_baza', 'CalEBo9') #1 /var/www/ewd/zpd/inc/parser/xhtml.php(509): eval() #2 /var/www/ewd/zpd/inc/parser/xhtml.php(526): Doku_Renderer_xhtml->php('??$PDO = new PD...', 'pre') #3 [internal function]: Doku_Renderer_xhtml->phpblock('??$PDO = new PD...') #4 /var/www/ewd/zpd/inc/parserutils.php(607): call_user_func_array(Array, Array) #5 /var/www/ewd/zpd/inc/parserutils.php(113): p_render('xhtml', Array, NULL) #6 /var/www/ewd/zpd/inc/parserutils.php(76): p_cached_output('/var/www/ewd/zp...', 'xhtml', 'baza_status') #7 /var/www/ewd/zpd/inc/html.php(246): p_wiki_xhtml('baza_status', 0, true, '') #8 /var/www/ewd/zpd/inc/template.php(1 in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code on line 2

Ograniczenia podczas pobierania danych

Dzień dobry.

Mam pytanie. Czy na bazie IBE nalożone są jakieś limity, który uniemożliwiają pobranie więcej niż 10000 rekordów? Chciałem potrenować na niej jako na fajnym źródle "dużych" danych. Zauważyłem jednak, że połaczenie gwałtownie przycina się i zawiesza, gdy zapytamie zwraca więcej niż 10000 wierszy. Na potwierdzenie tego 5000 jest zwracane niemal od razu.

Z góry dziękuję za odpowiedż.

The database server is down.

Trying to connect to port that postgres is supposed to be listenning on:

$ telnet ewd.ibe.edu.pl 5432
Trying 89.231.23.130...
telnet: Unable to connect to remote host: No route to host

And another error message from http://zaou.ibe.edu.pl/doku.php?id=baza_status

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: No route to host Is the server running on host "10.0.1.7" and accepting TCP/IP connections on port 5432?' in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code:2 Stack trace: #0 /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code(2): PDO->__construct('pgsql: host=10....', 'ewd_baza', 'CalEBo9') #1 /var/www/ewd/zpd/inc/parser/xhtml.php(509): eval() #2 /var/www/ewd/zpd/inc/parser/xhtml.php(526): Doku_Renderer_xhtml->php('??$PDO = new PD...', 'pre') #3 [internal function]: Doku_Renderer_xhtml->phpblock('??$PDO = new PD...') #4 /var/www/ewd/zpd/inc/parserutils.php(607): call_user_func_array(Array, Array) #5 /var/www/ewd/zpd/inc/parserutils.php(113): p_render('xhtml', Array, NULL) #6 /var/www/ewd/zpd/inc/parserutils.php(76): p_cached_output('/var/www/ewd/zp...', 'xhtml', 'baza_status') #7 /var/www/ewd/zpd/inc/html.php(246): p_wiki_xhtml('baza_status', 0, true, '') #8 /var/www/ewd/zpd/inc/template.php(1 in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code on line 2

Matematyka rozszerzona 2015

Witam
Korzystając z Pana pakietu ZPD zauważyłem, że nie działa mi jeden rocznik matury rozszerzonej z matematyki 2015. Inne roczniki działają a ten nie. Czy może robię coś nie tak?

pobierz_wyniki_egzaminu(src, rodzajEgzaminu = "matura", rokEgzaminu = 2015, czescEgzaminu = "matematyka rozszerzona", czyEwd = T)
Z góry dziękuję za odpowiedź
Dariusz

pobierz_wyniki_egzaminu() nie zwraca wszystkich testów, które powinna

Przy wywołaniu funkcji pobierz_wyniki_egzaminu() w odniesieniu do części matury, do której przypisane były dwa testy (np. matematyka podstawowa, czy angielski) zwróciła ona wyniki tylko jednego. Przykładowo wywołanie: pobierz_wyniki_egzaminu(polacz(), 'matura', 'j. angielski rozszerzona', 2017, TRUE) %>% collect(n = Inf) (angielski rozszerzony żeby to było relatywnie mało ludzi) zwraca wyniki tylko testu o id_testu równym 1817, choć powinno zwracać również wyniki testu o id 1793.

Biorąc pod uwagę, jak wygląda funkcja pobierz_wyniki_egzaminu() , problem dotyczy chyba funkcji wbudowanej w bazę zbuduj_widok_czesci_egzaminu().

Problem z instalacja ZPD

Podczas instalacji ze źródła pakietu ZPD pakiet RPostgres w versji 0.1-7 próbuje się instalować (nieskutecznie)

`R> devtools::install_github("zozlak/ZPD")
Downloading GitHub repo zozlak/ZPD@master
These packages have more recent versions available.
Which would you like to update?

1: RPostgres (1.1.1 -> 8488b4a4d...) [GitHub]

Enter one or more numbers separated by spaces, or an empty line to cancel
1: 1
RPostgres (1.1.1 -> 8488b4a4d...) [GitHub]
Downloading GitHub repo r-dbi/[email protected]
√ checking for file 'C:\Users\majer\AppData\Local\Temp\RtmpMb3T0s\remotes2dd82eab6542\r-dbi-RPostgres-2343b2e/DESCRIPTION' (434ms)

  • preparing 'RPostgres': (376ms)
    √ checking DESCRIPTION meta-information ...
  • cleaning src
  • checking for LF line-endings in source and make files and shell scripts
  • checking for empty or unneeded directories
  • building 'RPostgres_0.1-7.tar.gz'
    Ostrzeżenie: file 'RPostgres/configure' did not have execute permissions: corrected

Installing package into ‘C:/Users/majer/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
Hi Dax, welcome to R

  • installing source package 'RPostgres' ...
    ** using staged installation
    ** libs

*** arch - i386
rm -f PqConnection.o PqResult.o PqRow.o PqUtils.o RPostgres-init.o RcppExports.o connection.o encode.o encrypt.o result.o RPostgres.dll
"C:/PROGRA1/R/R-361.0/bin/i386/Rscript.exe" "../tools/winlibs.R"
Hi Dax, welcome to R
C:/Rtools/mingw_32/bin/g++ -I"C:/PROGRA1/R/R-361.0/include" -DNDEBUG -I../windows/libpq-9.5.2/include -I"C:/Users/majer/Documents/R/win-library/3.6/BH/include" -I"C:/Users/majer/Documents/R/win-library/3.6/plogr/include" -I"C:/Users/majer/Documents/R/win-library/3.6/Rcpp/include" -O2 -Wall -mtune=generic -c PqConnection.cpp -o PqConnection.o
PqConnection.cpp: In constructor 'PqConnection::PqConnection(std::vector<std::basic_string >, std::vector<std::basic_string >)':
PqConnection.cpp:18:26: error: 'setenv' was not declared in this scope
setenv("PGTZ", "UTC", 1);
^
make: *** [C:/PROGRA1/R/R-361.0/etc/i386/Makeconf:215: PqConnection.o] Error 1
ERROR: compilation failed for package 'RPostgres'

  • removing 'C:/Users/majer/Documents/R/win-library/3.6/RPostgres'
  • restoring previous 'C:/Users/majer/Documents/R/win-library/3.6/RPostgres'
    Błąd w poleceniu 'file.copy(lp, dirname(pkgdir), recursive = TRUE, copy.date = TRUE)':
    (przetworzone z ostrzeżenia) problem z kopiowaniem C:\Users\majer\Documents\R\win-library\3.6\00LOCK-RPostgres\RPostgres\libs\x64\RPostgres.dll do C:\Users\majer\Documents\R\win-library\3.6\RPostgres\libs\x64\RPostgres.dll: Permission denied
  • removing 'C:/Users/majer/Documents/R/win-library/3.6/RPostgres'
  • restoring previous 'C:/Users/majer/Documents/R/win-library/3.6/RPostgres'
    Błąd w poleceniu 'file.copy(lp, dirname(pkgdir), recursive = TRUE, copy.date = TRUE)':
    (przetworzone z ostrzeżenia) problem z kopiowaniem C:\Users\majer\Documents\R\win-library\3.6\00LOCK-RPostgres\RPostgres\libs\x64\RPostgres.dll do C:\Users\majer\Documents\R\win-library\3.6\RPostgres\libs\x64\RPostgres.dll: Permission denied
    Wykonywanie wstrzymane
    Error in i.p(...) :
    (converted from warning) installation of package ‘C:/Users/majer/AppData/Local/Temp/RtmpMb3T0s/file2dd8639c1f4e/RPostgres_0.1-7.tar.gz’ had non-zero exit status`

A jeśli zainstaluję RPostgres CRAN-owe to instalacja ZPD przebiega bez problemów, jednak jak się uruchomi pakiet, to nie działa ściąganie

`library(tidyverse)
library(ZPD)

src = polacz()

dane = pobierz_wyniki_egzaminu(src = src, 'egzamin gimnazjalny', 'matematyka', 2012, TRUE) %>%
collect()`

Error: con must not be NULL

Pozdrawiam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.