Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
r_gr_wyniki [2015/09/27 13:25] zozlak [zsumuj_punkty()] |
r_gr_wyniki [2017/11/11 18:58] (aktualna) zozlak [pobierz_odpowiedzi()] |
||
---|---|---|---|
Linia 153: | Linia 153: | ||
* **Uwaga**, przed pobraniem wyników na komputer należy **koniecznie je odfiltrować**, typowo poprzez złączenie z odpowiednio odfiltrowaną grupą danych [[r_gr_testy|testy]] i/lub [[r_gr_kryteriaoceny|kryteria oceny]]. | * **Uwaga**, przed pobraniem wyników na komputer należy **koniecznie je odfiltrować**, typowo poprzez złączenie z odpowiednio odfiltrowaną grupą danych [[r_gr_testy|testy]] i/lub [[r_gr_kryteriaoceny|kryteria oceny]]. | ||
+ | * **Uwaga** filtrując za pomocą podanego ręcznie //id_testu// należy zadbać o to, by przekazane wartości były liczbami całkowitymi (np. //123L// albo //as.integer(123)// - patrz przykład poniżej).\\ R domyślnie przechowuje liczby w postaci zmiennoprzecinkowej, co jednak przy filtrowaniu danych zwracanych przez funkcję //pobierz_odpowiedzi()// prowadzi do drastycznego pogorszenia wydajności (jest to pechowy zbieg nie dość inteligentnego zachowania bazy danych oraz niefortunnego rzutowania wartości przez pakiet //dplyr// przy generowaniu zapytań SQL, na żaden z tych czynników nie mamy jednak niestety wpływu). | ||
* Jakkolwiek postać długa może się wydawać nieintuicyjna, jest ona bardzo wygodna do dalszego analizowania danych z zastosowaniem pakietów takich jak //dplyr// czy //ggplot//. | * Jakkolwiek postać długa może się wydawać nieintuicyjna, jest ona bardzo wygodna do dalszego analizowania danych z zastosowaniem pakietów takich jak //dplyr// czy //ggplot//. | ||
* W odróżnieniu od pozostałych funkcji pobierających wyniki daje jednoczesny dostęp zarówno do wypunktowanych odpowiedzi, jak i samych dystraktorów. | * W odróżnieniu od pozostałych funkcji pobierających wyniki daje jednoczesny dostęp zarówno do wypunktowanych odpowiedzi, jak i samych dystraktorów. | ||
Linia 162: | Linia 163: | ||
=== Przykład === | === Przykład === | ||
- | Pobranie wyników testu o id 1541 (zeszyt 9 zrównywania matury z j. polskiego w 2014 r.) | + | Pobranie wyników testu o id 1601 (matura rozszerzona z biologii w 2014 roku). |
+ | |||
+ | Z uwagi na wydajność istotne jest przekazanie //id_testu// jako liczby całkowitej - stąd //as.integer(1601)//. | ||
Jak znaleźć id interesującego nas testu - patrz grupa danych [[r_gr_testy|testy]]. | Jak znaleźć id interesującego nas testu - patrz grupa danych [[r_gr_testy|testy]]. | ||
Linia 170: | Linia 174: | ||
# pobieramy dane | # pobieramy dane | ||
- | test1541 = pobierz_odpowiedzi(src) %>% | + | test1601 = pobierz_odpowiedzi(src) %>% |
# odfiltrowując porządany test | # odfiltrowując porządany test | ||
- | filter(id_testu == 1541) %>% | + | filter(id_testu == as.integer(1601)) %>% |
collect() | collect() | ||
# podglądamy pierwsze wiersze | # podglądamy pierwsze wiersze | ||
- | head(test1541) | + | head(test1601) |
</code> | </code> | ||
Linia 316: | Linia 320: | ||
=== Przykład === | === Przykład === | ||
- | Pobieramy wyniki testu 1541 (matura z j. polskiego na poziomie podstawowywm w 2014 roku) i obliczamy sumy punktów pozostawiając jednocześnie w zbiorze zmienne z punktacją za poszczególne [[kryteriumoceny|kryteria oceny]]. | + | Pobieramy wyniki testu 1541 (zeszyt 9 zrównywania matury z j. polskiego w 2014 roku) i obliczamy sumy punktów pozostawiając jednocześnie w zbiorze zmienne z punktacją za poszczególne [[kryteriumoceny|kryteria oceny]]. |
<code rsplus> | <code rsplus> | ||
Linia 324: | Linia 328: | ||
collect() %>% | collect() %>% | ||
zsumuj_punkty(usunKryteria = FALSE) | zsumuj_punkty(usunKryteria = FALSE) | ||
+ | head(dane) | ||
</code> | </code> | ||
Linia 331: | Linia 336: | ||
Dokonuje normalizacji **sum punktów** (np. wyliczonych funkcją //zsumuj_punkty()//) albo z użyciem wskazanej [[r_gr_normy|normy]] albo poprzez wykonanie normalizacji ekwikwantylowej przekazanych danych. | Dokonuje normalizacji **sum punktów** (np. wyliczonych funkcją //zsumuj_punkty()//) albo z użyciem wskazanej [[r_gr_normy|normy]] albo poprzez wykonanie normalizacji ekwikwantylowej przekazanych danych. | ||
- | * **Uwaga,** w wypadku stosowania normy z bazy dane powinny być przekształcone (jeszcze przed policzeniem sum punktów) za pomocą tej samej skali, jak skala, z której pochodzi norma! | + | * **uwaga,** w wypadku stosowania normy z bazy dane powinny być przekształcone (jeszcze przed policzeniem sum punktów) za pomocą tej samej skali, jak skala, z której pochodzi norma! |
//**normalizuj**(dane, src = NULL, kolWynik = "wynik", | //**normalizuj**(dane, src = NULL, kolWynik = "wynik", | ||
Linia 338: | Linia 343: | ||
* //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() (tylko w wypadku stosowania [[r_gr_normy|norm]] pobieranych z bazy) | * //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() (tylko w wypadku stosowania [[r_gr_normy|norm]] pobieranych z bazy) | ||
* //kolWynik// - nazwa zmiennej w danych przechowującej sumy punktów | * //kolWynik// - nazwa zmiennej w danych przechowującej sumy punktów | ||
- | * //idSkali//, //skalowanie//, //grupa// - parametry pozwalające zidentyfikować w bazie danych [[r_gr_norma|normę]] do zastosowania; **dane powinny być przekształcone za pomocą tej samej skali** (tylko w wypadku stosowania [[r_gr_normy|norm]] pobieranych z bazy) | + | * //idSkali//, //skalowanie//, //grupa// - parametry pozwalające zidentyfikować w bazie danych [[r_gr_normy|normę]] do zastosowania; **dane powinny być przekształcone za pomocą tej samej skali** (tylko w wypadku stosowania [[r_gr_normy|norm]] pobieranych z bazy) |
* //...// - opcjonalne parametry funkcji //normy_ekwikwantylowe()// (tylko w wypadku wykonywania normalizacji ekwikwantylowej na podstawie przekazanych danych) | * //...// - opcjonalne parametry funkcji //normy_ekwikwantylowe()// (tylko w wypadku wykonywania normalizacji ekwikwantylowej na podstawie przekazanych danych) | ||
+ | |||
+ | === Przykład === | ||
+ | |||
+ | Stosujemy dwie różne normy do wyników sprawdzianu z 2002 roku: | ||
+ | |||
+ | * normalizację ekwikwantylową na podstawie wyników sprawdzianu w 2002 roku | ||
+ | * normę zrównującą przeliczającą wyniki z roku 2002 na odpowiadające im wyniki w roku 2013 | ||
<code rsplus> | <code rsplus> | ||
Linia 347: | Linia 359: | ||
collect() | collect() | ||
| | ||
- | # normalizacja ekwikwantylowa na podstawie danych | + | # normalizacja ekwikwantylowa na podstawie danych (domyślna średnia 100 i odchylenie standardowe 15) |
daneNormEkw = dane %>% | daneNormEkw = dane %>% | ||
zsumuj_punkty() %>% | zsumuj_punkty() %>% | ||
normalizuj() | normalizuj() | ||
+ | head(daneNormEkw) | ||
| | ||
# normalizacja na podstawie normy zrównującej {idSkali, skalowanie, grupa} = {778, 2, ''} w bazie | # normalizacja na podstawie normy zrównującej {idSkali, skalowanie, grupa} = {778, 2, ''} w bazie | ||
daneNormZrwn = dane %>% | daneNormZrwn = dane %>% | ||
# skala, z której pochodzi norma zrównująca | # skala, z której pochodzi norma zrównująca | ||
- | zastosuj_skale(778) %>% | + | zastosuj_skale(src, 778) %>% |
+ | zsumuj_punkty() %>% | ||
normalizuj(src, idSkali = 778, skalowanie = 2, grupa = '') | normalizuj(src, idSkali = 778, skalowanie = 2, grupa = '') | ||
+ | head(daneNormZrwn) | ||
</code> | </code> | ||
Linia 372: | Linia 387: | ||
# Pobieramy grupy danych //wyniki//, //uczniowie//, //uczniowieTesty//, //szkoły//: | # Pobieramy grupy danych //wyniki//, //uczniowie//, //uczniowieTesty//, //szkoły//: | ||
- | wyniki = pobierz_czesc_egzaminu(src, 'egzamin gimnazjalny', 'matematyczno-przyrodnicza', 2011, T) | + | wyniki = pobierz_wyniki_egzaminu(src, 'egzamin gimnazjalny', 'matematyczno-przyrodnicza', 2011, TRUE) |
uczniowie = pobierz_uczniow(src) | uczniowie = pobierz_uczniow(src) | ||
uczniowieTesty = pobierz_dane_uczniowie_testy(src) | uczniowieTesty = pobierz_dane_uczniowie_testy(src) |