R programski jezik: Tidyverse – Dplyr

Tidyverse predstavlja kolekciju R biblioteka koje su namenjene pre svega za čišćenje, manipulaciju i vizualizaciju podataka. Kolekcija sadrži biblioteke dplyr, tibble, tidyr, purrr, ggplot2, readr. U nastavku teksta fokus će biti na biblioteci Dplyr i funkcijama koje su u okviru nje.

r programiranje tidyverse dplyr

Dplyr biblioteka predstavlja gramatiku manipulacije podacima i pruža pomoć sa ciljem rešavanja najčešćih zadataka koji se odnose na manipulaciju u okviru nekog skupa podataka.  Trenutna stabilna  verzija je 0.7.6. a autori koji stoje iza nje su dobro poznati Hadley Wickham, Romain Francois, Lionel Henry, Kirill Mulle i tim koji stoji iza RStudio-a.

Na primerima u nastavku korišćen je set podataka koji je preuzet iz Google Analytics alata, konkretno iz demo naloga Google Mechandise Store koji je dostupan svim korisnicima za vežbu i trening. Ovaj nalog predstavlja funkcionalan GA nalog  kome može da pristupi svaki Google korisnik i kroz njega ima mogućnost da analizira podatke ovog online biznisa. 

Dplyr funkcije:

  1. mutate()
  2. select()
  3. filter()
  4. sumarize()
  5. arrange()
  6. group_by()

Najlakši način da instalirate ovu biblioteku je da instalirate ceo tidyverse paket. Instalacija je neophodna. Nakon toga potrebno je da učitate instaliranu biblioteku. Takođe preporučujem da koristite popularni open source IDE (an integrated development environment) alat pod imenom RStudio sa kojim ćete pisati kod kroz konzolu koja podržava direktno izvršavanje koda, raditi debugging i vizualizovati podatke. Za više informacija i načinu kako da pristupite Google Analytics API možete pročitati ovde.

Kroz ovaj kratak tutorijal na osnovu Google Mechandise Store seta podataka sa dplyr bibliotekom moći ćete da odgovorite na sledeća pitanja:

  • Koliki je procenat transakcija po korisniku?
  • Koliki je broj poseta i transakcija na desktop uređajima?
  • Koliki je broj poseta i transakcija na desktop uređajima samo preko organske pretrage?
  • Kolika je srednja vrednost poseta po kanalu?
  • Koliko iznosi srednja vrednost poseta i koliki je ukupan zbir transakcija po kanalima?
  • Koja je srednja vrednost transakcija i kolika je poseta po kanalu?
r programiranje r studio tidyverse dplyr
Screenshot: RStudio IDE

Dplyr setup

Nakon početnog setupa, sledi učitavanje fajla i osnovna provera seta podataka, njegovih dimenzija i imena svih kolona koje su u tabeli.

Console:

Dplyr mutate() funkcija

Mutate() funkcija dodaje novu varijablu/kolonu koja je u funkciji već postojeće varijable/kolone. Novoj koloni možete dati novo ime.

Pitanje: Koliki je procenat transakcija po korisniku?

Dplyr select() funkcija

  1. Selektovanje kolona
  2. Izbacivanje samo jedne kolone
  3. Izbacivanje više kolona
  4. Dodavanje više kolona
  5. Selektovanje kolona na osnovu naziva
  6. Selektovanje kolona na osnovu tipa podatka
  7. Premeštanje kolona
  8. Preimenovanje kolona

Selektovanje kolona

U primeru su selektovane dve kolone od ukupno sedam. Ovim se fokusira na željene varijable za analizu u okviru novog data frame-a.

Selektovanje određenih kolona

Takođe moguće je i selektovati kolone u zavisnosti gde se nalaze. U primeru sve kolone koje su između date i deviceCategory (uključujući i njih) biće selektovane kao i kolona transactions.

Izbacivanje samo jedne kolone

Alternativni način je da se iz učitanog seta podataka izbaci jedna varijabla/kolona koja nije potrebna za analizu. U primeru je to varijabla users, koja nam u ovom trenutku nije potrebna.

Izbacivanje više kolona

Moguće je i izbaciti više kolona odjednom. U primeru sve kolone između users i pageviews (uključujući i njih) biće izbačene.

Selektovanje kolona na osnovu njihovih naziva

Ako želimo da selektujemo kolone koje imaju u nazivu transactions, uradićemo sledeće.

Selektovanje kolona koje se završavaju sa npr. ons.

Takođe varijable/kolone mogu da se selektuju i na osnovu reči koje sadrže na primer transact.

Selektovanje kolona na osnovu tipa

Ako međutim želimo da selektujemo sve kolone koje su numeričke koristićemo select_if uradićemo sledeće.

Premeštanje kolona

Za slučaj da želimo da promenimo raspored kolona onda ćemo iskoristiti primer iz nastavka.

Promena imena kolona

Dplyr filter() funkcija

Funkcija filter() filtrira redove gde je zadovoljen kriterijum.

Filtriranje samo jedne varijable

Pitanje: Koliki je broj poseta i transakcija na desktop uređajima?

Filtriranje dve varijable

Pitanje: Koliki je broj poseta i transakcija na desktop uređajima samo preko organske pretrage?

 

Dplyr summarize() funkcija

Funkcija summarize() uglavnom služi za grupisanje podataka od strane funkcije group_by.

Pitanje: Kolika je srednja vrednost poseta po kanalima?

Pitanje: Koliko iznosi srednja vrednost poseta i koliki je ukupan zbir transakcija po kanalima?

 

Dplyr arrange() funkcija

Funkcija arrange() sortira varijablu/kolonu u opadajućem nizu.

Dplyr group_by() funkcija

Funkcija group_by grupiše podatke na osnovu varijable/kolone.

Pitanje: Koja je srednja vrednost transakcija i kolika je poseta po kanalu?

 

Zaključak

Nadam se da vam je ovaj tutorijal pomogao da naučite kako da izvršite dplyr funkcije za manipulaciju podataka u R programskom jeziku. Obuhvaćeno je pet funkcija koje su se u nekim slučajevima koristile u kombinaciji tj. vezane lancem (pipe %>%) iz magrittr biblioteke.

Fokus ovog tutorijala je bila vežba na praktičnim primerima na setu podataka iz Google Analytics alata a koje se promenom koda tj dataframea mogu odmah prilagoditi i primeniti na vaš set podataka.

Ako želite da detaljnije pregledate dokumentaciju dplyr paketa, predlažem da pogledate zvaničan pdf sa CRAN-a koji se nalazi na ovom linku.

Srećno vežbanje i analiziranje!