Cvičenie 3 - Práca s knižnicou 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) 

Základné kombinácie dvoch tabuliek

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

  1. Manipulate Cases
  2. 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:
    • variables podmieňuje odstránenie podľa atribútov
    • .keep_all môže nadobúdať hodnotu TRUE alebo FALSE a používa sana zachovanie všetkých ostatných premenných vo výstupnom dátovom rámci.
    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:

  3. Manipulate Variables
  4. 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:
    • var1:var2: výber atribútu var1var2
    • -var: odstránenie atribútu var
    • starts_with(" "): výber atribútu začínajúci písmenom/písmenami
    • end_with(" "): odtránenie atribútu s posledným písmenom/písmenami
    • contains(" "): obsahuje doslovný reťazec
    • everything(): zmena poradia stĺpcov
    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:

  5. Summarise Cases
  6. 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:

  7. Pipe Operator %>% syntax
  8. 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:

Úlohy

Úloha 3.1

Z dát mtcars zobrazte počet automobilov pre každú hodnotu cyl (počet valcov) a usporiadajte zostupne.

Úloha 3.2

 install.packages("FSAdata")
library(FSAdata)

Vypočítajte podiel všetkých ulovených rýb v každom mesiaci. Dataset > RuffeSLRH92. Vykonajte tieto kroky:

  • zoskupenie údajov podľa mesiacov,
  • zhrnutie počtu ulovených rýb v každom mesiaci,
  • pridania novej premennej, ktorá je pomerom celkovej hodnoty úlovok v každom mesiaci,
  • triedenie výsledkov tak, aby bol ako prvý uvedený mesiac s najväčším úlovkom.

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

© 2020 Peter Butka, Viera Maslej Krešňáková