Tablice dplyr-a
Wstęp
Tablice dplyr-a są uogólnieniem zwykłych ramek danych R. Uogólnienie to polega na tym, że:
Mogą przechowywać dane z różnych źródeł:
Niezależnie od tego, z jakiego źródła pochodzą dane w tablicy dplyr-a:
dla funkcji R operujących na ramkach danych R tablica dplyr-a zachowuje się jak zwykła ramka danych R;
można na niej wykonywać dokładnie ten sam zestaw operacji (czasowników) udostępnianych przez pakiet dplyr;
Powyższe cechy powodują, że tablice dplyr-a są bardzo atrakcyjnym zamiennikiem dla klasycznych ramek danych R.
Tworzenie
Z ramki danych R
Z grupy danych w bazie
Funkcje pakietu ZPD pobierające grupy danych z bazy zwracają tablice dplyr-a, nie trzeba ich więc konwertować.
Z dowolnego zapytania SQL wykonanego na bazie
library(ZPD)
src = polacz()
dane = tbl(src, sql("SELECT * FROM kryteria_oceny JOIN pytania USING (id_pytania)")
[w ten sposób działają wewnętrznie funkcje pakietu ZPD pobierający grupy danych z bazy]
Konwersja na ramkę danych
Generalnie operacja taka nie powinna być do niczego potrzebna, gdyż:
dla funkcji operujących na ramkach danych R tablice dplyr-a zachowują się jak zwykłe ramki danych;
konwertując tablicę dplyr-a na ramkę danych tracimy możliwości, które dawała nam tablica dplyr-a.
Jeśli jednak istnieje taka potrzeba, wystarczy skorzystać z funkcji as.data.frame(), np.
library(ZPD)
src = polacz()
testyTbl = pobierz_testy()
testyDf = as.data.frame(testyTbl)
Przy tym:
Jeśli
tablica dplyr-a pochodzi z bazy danych, wywołanie
as.data.frame() spowoduje najpierw przekształcenie jej w tablicę lokalną (wywołanie czasownika
collect()).
Jeśli na
tablicy dplyr-a określone zostało (czasownikiem
group_by()) grupowanie, ale nie została wykonana (czasownikiem
summarize()) agregacja, to ramka danych R będzie zawierała dane niezagregowane.