dplyr
Cieľom tretieho cvičenia je práca s dátovými rámcami pomocou klnižnice dplyr
. Uvedené príkazy sa často využívajú v procese predspracovania dát.
Balík dplyr
je jedným z najpopupárnejších balíkov v R. V tejto časti sa pozrieme na niekoľko
príkladov a tipov ako používať knižnicu dplyr
na čistenie a trasformáciu dát. Pre inštaláciu zadajte
install.packages("dplyr")
a načítajte knižnicu pomocou nasledujúceho príkazu:
library(dplyr)
V nasledujúcich úlohách budeme využívať dáta, o fiktívnych príjmoch rôznych štátov od roku 2002 do 2015. Tento dataset obsahuje 51 riadkov (pozorovaní) a 16 stĺpcov (premenných).
Dataset si načitajte pomocou nasledujúceho kódu:
dataset = read.csv("https://raw.githubusercontent.com/deepanshu88/data/master/sampledata.csv")
Pri riešení jednotlivých úloh sa budeme stretávať s týmito logickými operátormi:
Operátor | Popis |
---|---|
== |
Rovná sa |
%in% |
Výber viacerých položiek |
& |
logický operátor AND |
| |
logický operátor OR |
! |
negácia NOT |
Nasledujúca tabuľka obsahuje základné funkcie na prácu s riadkami:
Funkcia | Popis |
---|---|
select_n(dataframe,n) |
Náhodný výber n riadkov |
select_frac(dataframe,n) |
Náhodný výber n % riadkov, n zadávame ako desatinné číslo |
distict(daframe, variables , .keep_all) |
Odstránenie duplikátov:
|
filter(dataframe, logical conditions) |
Výber podmnožiny údajov (riadkov) so zodpovedajúcimi logickými podmienkami |
slice() |
Výber riadkov podľa polohy |
arrange(dataframe, variable(s)_to_sort) |
Zoradenie údajov |
Príklady:
Nasledujúca tabuľka obsahuje základné funkcie na prácu s atribútmi/stĺpcami:
Funkcia | Popis |
---|---|
select(dataframe, variables) |
Výber požadovaných atribútov:
|
select_if(dataframe, condition) |
Podmienený výber atribútov |
mutate(dataframe, expression(s)) |
Vytvorenie nového atribútu |
mutate_all(dataframe, expression(s)) |
Vytvorenie nových n atribútov z pôvodných n atribútov, aplikovaním vybraného výrazu |
mutate_if(dataframe, condition, expression(s)) |
Podmienené vytvorenie nových atribútov |
mutate_at(dataframe, variables, expression(s)) |
Vytvorenie nových atribútov, aplikovaním výrazu na povodné atribúty |
rename() |
Premenovanie atribútu |
Príklady:
Mnoho úloh v oblasti analýzy dát sa dá vyjadriť pomocou paradigmy split-apply-combine = rozdeliť-použiť-skombinovať:
rozdeliť údaje do skupín, použiť určitú analýzu pre každú skupinu a potom skombinovať výsledky.
dplyr ponúka group_by()
funkciu, ktorá rozdeľuje dáta do skupín.
Ak sú dáta zoskupené týmto spôsobom, je možné použiť summarize()
na vyvorenie jednoriadkového súhrnu z každej skupiny.
Funkcia summarize()
použije pre každú skupinu agregačnú alebo súhrnnú funkciu.
Funkcia | Popis |
---|---|
group_by(dataframe, variables |
Zoskupi dáta avšak nezmení spôsob zobrazenia údajov |
summarize(dataframe, summary function) |
Sumarizácia, agregácia údajov |
summarize_at(dataframe, variables, summary function) |
Sumarizácia viacrých premenných, výber podľa ich názvu |
summarize_if(dataframe, condition, summary function) |
Podmienená sumarizácia, summarizuje premenné vybrané pomocou zadanej podmienky |
summarize_all(dataframe, summary function) |
Sumarizuje všetky atribúty |
Príklady:
Pipe operátor je nástrojom pre ľahko čitateľné vyjadrenie postupnosti viacerých operácií. Vďaka pipe operátoru voláme jednotlivé operácie reťazovo. Jednoducho povedané, pipe operátor nám umožňuje preniesť priebežný výsledok na ďalšiu funkciu.
Kód v jazyku R často obsahuje mnoho zátvoriek, čím sa stáva neprehľadným. Pipe operátor vytvorí zo zložitých operácií čitateľný a zrozumiteľný kód. Ďalšou výhodou je, že sa môžete vyhnúť vnoreným volaniam, minimalizujete potrebu vnorených premenných a definicií funkcií a zároveň vám uľahčí pridávanie krokov kdekoľvek do postupnosti operácií.
Aj jednoduchú funckiu ako log(x)
vieme prepísať ako x %>% log()
. Princíp si ukážeme na nasledujúcich príkladoch:
Z dát mtcars zobrazte počet automobilov pre každú hodnotu cyl (počet valcov) a usporiadajte zostupne.
install.packages("FSAdata")
library(FSAdata)
Vypočítajte podiel všetkých ulovených rýb v každom mesiaci. Dataset > RuffeSLRH92. Vykonajte tieto kroky:
Výsledok:
## month n priemer ## 1 7 182 0,24661 ## 2 6 154 0,20867 ## 3 9 126 0,17073 ## 4 8 79 0,10705 ## 5 10 69 0,09350 ## 6 5 66 0,08943 ## 7 4 62 0,08401