Narzędzia użytkownika

Narzędzia witryny


r_dplyr_tablice

Różnice

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

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
r_dplyr_tablice [2014/12/17 10:28]
zozlak utworzono
r_dplyr_tablice [2015/01/30 11:23] (aktualna)
zozlak [Konwersja na ramkę danych]
Linia 1: Linia 1:
-====== Tablice dplyr ======+====== 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ł:​ 
 +    * zwykłej ramki danych R; 
 +    * ramki danych [[https://​github.com/​Rdatatable/​data.table/​wiki|data.table]];​ 
 +    * zapytania SELECT wykonanego na SQL-owej bazie danych. 
 +  * 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//;​ 
 +      * operacje te wykonują się typowo wielokrotnie szybciej niż ich //​klasyczne//​ odpowiedniki w R (z pakietu //​base//​). 
 + 
 +Powyższe cechy powodują, że //tablice dplyr-a// są bardzo atrakcyjnym zamiennikiem dla klasycznych ramek danych R.
  
 ===== Tworzenie ===== ===== Tworzenie =====
Linia 6: Linia 21:
  
   * Wszystkie czasowniki radzą sobie z przetwarzaniem ramek danych R, więc **nie ma potrzeby przekształcania ramek danych R na //tablice dplyr//**.   * Wszystkie czasowniki radzą sobie z przetwarzaniem ramek danych R, więc **nie ma potrzeby przekształcania ramek danych R na //tablice dplyr//**.
-  * Jeśli kluczowa jest wydajność,​ można przekształcić ramkę danych R na //tablicę dplyr// korzystającą z backend-u //​data.table//:<​code>​+  * Jeśli kluczowa jest wydajność,​ można przekształcić ramkę danych R na //tablicę dplyr-a// korzystającą z backend-u //​data.table//:<​code ​rsplus>
 library(data.table) library(data.table)
 library(dplyr) library(dplyr)
Linia 13: Linia 28:
 </​code>​ </​code>​
  
 +==== Z grupy danych w bazie ===
  
-===== Z grupy danych ​w bazie ====+Funkcje pakietu ZPD pobierające [[r_gr|grupy danych]] z bazy zwracają //tablice dplyr-a//, nie trzeba ich więc konwertować.
  
-Funkcje pakietu ZPD pobierające [[r_wstep|grupy danych]] z bazy zwracają //tablice dplyr//, nie trzeba ich więc konwertować. +==== Z dowolnego zapytania SQL wykonanego na bazie ====
- +
-=== Z dowolnego zapytania SQL wykonanego na bazie ===+
  
   * Nawiąż połączenie z bazą danych funkcją //​polacz()//​ pakietu ZPD.   * Nawiąż połączenie z bazą danych funkcją //​polacz()//​ pakietu ZPD.
   * Utwórz //tablicę dplyr// kombinacją funkcji //tbl()// oraz //sql()//   * Utwórz //tablicę dplyr// kombinacją funkcji //tbl()// oraz //sql()//
  
-<​code>​+<​code ​rsplus>
 library(ZPD) library(ZPD)
 src = polacz() src = polacz()
Linia 33: Linia 47:
 ===== Konwersja na ramkę danych ===== ===== Konwersja na ramkę danych =====
  
-Wystarczy ​skorzystać z funkcji //​as.data.frame()//,​ np. +**Generalnie operacja taka nie powinna być do niczego potrzebna**,​ gdyż: 
-<​code>​+ 
 +  * 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. 
 +<​code ​rsplus>
 library(ZPD) library(ZPD)
 src = polacz() src = polacz()
Linia 43: Linia 62:
 Przy tym: Przy tym:
  
-  * jeśli //tablica dplyr// pochodzi z bazy danych, wywołanie as.data.frame() spowoduje najpierw przekształcenie jej w tablicę lokalną (wywołanie czasownika ​//collect()//); +  * 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 ​[[r_dplyr_pobranie|collect()]]). 
-  * jeśli na //tablicy dplyr// określone zostało (czasownikiem ​//group_by()//) grupowanie, ale nie została wykonana (czasownikie //summarize()//) agregacja, to ramka danych R będzie zawierała dane niezagregowane.+  * Jeśli na //tablicy dplyr-a// określone zostało (czasownikiem ​[[r_dplyr_agreagety#​group_by|group_by()]]) grupowanie, ale nie została wykonana (czasownikiem [[r_dplyr_agreagety#​summarize|summarize()]]) agregacja, to ramka danych R będzie zawierała dane niezagregowane.
  
r_dplyr_tablice.1418808485.txt.gz · ostatnio zmienione: 2014/12/17 10:28 przez zozlak