EN | PT | TR | RO | BG | SR
;


NEXT TOPIC

SADRŽAJ JEDINICE




Modul 3: Napredna manipulacija podacima i grafikoni




Razviti sposobnost za naprednu manipulaciju podacima koristeći pakete tidyr i dplyr, uključujući tehnike za filtriranje, transformaciju i preoblikovanje podataka.

Usavršiti veštine kreiranja kompleksnih i naprednih grafikona u programskom jeziku R uz pomoć paketa ggplot2, uključujući prilagođavanje izgleda grafikona, boja i tema u cilju boljeg vizuelnog prikaza.

Upoznati se sa specijalizovanim paketima kao što su lubridate, forcats i gridExtra.



Danas je sposobnost efikasne manipulacije i vizualizacije podataka neophodna veština. Modul 3 služi kao odskočna daska za unapređenje veština analize podataka, istražujući napredne tehnike manipulacije podacima i kreiranje složenih, prilagođenih vizualizacija podataka. Ovde istražujemo napredne mogućnosti paketa tidyr i dplyr za manipulaciju podacima i napredne tehnike crtanja grafikkona koristeći ggplot2. Pored toga, upoznaćemo se sa specijalizovanim paketima kao što su lubridate, forcats i gridExtra kako bismo unapredili analizu podataka.



Moć tidyr-a

Paket tidyr, koji je razvio Hadley Wickham, dizajniran za rad sa nesređenim (sirovim) skupovima podataka, čineći ih pogodnijim za analizu. Sređivanje podataka podrazumeva njihovo preoblikovanje iz širokog formata u dugi format, osiguravajući da svaka promenljiva ima svoju kolonu, a svako opažanje svoj red. Ovladaćete tehnikama sređivanja podataka, koje će vam omogućiti da pripremite svoje skupove podataka za efikasnu analizu.

Paket tidyr, omogućava analitičarima i naučnicima da rade sa podacima na strukturiraniji i organizovaniji način. Primarni cilj je transformisanje podataka iz širokog formata u dugi format, osiguravajući da svaka promenljiva ima svoju kolonu, a svako opažanje svoj red.

Evo vodiča korak po korak kako da iskoristite moć tidyr-a u R-u

Instalacija i učitavanje paketa tidyr

Najpre je neophodno instalirati paket a potom ga i učitati u radno okruženje kako bi bio dostupan za upotrebu. To možete učiniti pomoću sledećih komandi:

install.packages("tidyr")

library(tidyr)

Razumevanje sređivanja podataka

Sređivanje podataka znači restrukturiranje kako bi se ispoštovala načela urednih podataka, kako ih definiše Hadley Wickham. U urednom skupu podataka:

  • Svaka promenljiva formira kolonu.
  • Svako opažanje formira red.
  • Svaka vrednost je u svojoj ćeliji.
  • Podaci su organizovani na način koji pojednostavljuje njihovu manipulaciju, analizu i vizualizaciju.

Preoblikovanje podataka sa gather()

Funkcija gather() je osnovni alat za konvertovanje podataka iz širokog formata u dugi format. Ova funkcija uzima više kolona i spaja ih u ključ-vrednost parove. Posebno je korisna kada radite sa skupovima podataka gde više kolona predstavlja različite vremenske tačke, kategorije ili promenljive.

Osnovna sintaksa gather() je sledeća:

gathered_data <- gather(original_data, key = "new_key_column", value = "new_value_column", columns_to_gather)

  • original_data: originalni skup podataka.
  • new_key_column: ime nove kolone koja će sadržati imena promenljivih.
  • new_value_column: ime nove kolone koja će sadržati vrednosti.
  • columns_to_gather: kolone koje želite da preoblikujete u parove ključ-vrednost.

Širenje podataka sa spread()

Nasuprot tome, možda ćete morati da transformišete podatke iz dugog formata u široki format kada želite da promenljive koje su sačuvane kao parovi ključ-vrednost ponovo budu zasebne kolone. Za ovu vrstu transformacije se koristi funkcija spread().

Osnovna sintaksa spread() je sledeća:

spread_data <- spread(original_data, key = "new_key_column", value = "new_value_column")

  • original_data: originalni skup podataka u dugom formatu.
  • new_key_column: kolona koja sadrži imena promenljivih.
  • new_value_column: kolona koja sadrži vrednosti.

Rukovanje nedostajućim podacima

Kada sređujete podatke, možete naići na nedostajuće vrednosti. tidyr pruža funkcije kao što je drop_na() za uklanjanje redova koji sadrže nedostajuće vrednosti.

Primer sređivanja podataka

Recimo da imate skup podataka gde kolone predstavljaju različite godine (year), a vi želite da ga konvertujete u dugi format kako biste efikasnije radili sa njim. Možete koristiti gather() na sledeći način:

long_data <- gather(original_data, key = "Year", value = "Value", 2000:2020)

Ovaj kod uzima originalni skup podataka (original_data) i transformiše ga u dugi format, sa dve nove kolone, "Year" i "Value". Kolona "Year" će sadržati godine (od 2000 do 2020), a kolona "Value" će sadržati odgovarajuće vrednosti.

Sređivanje za analizu

Sređivanje podataka je ključni korak u okviru analize podataka. Kada su podaci uredni, možete efikasno koristiti paket dplyr za manipulaciju podacima i generisati vizualizacije sa ggplot2.

Efikasnost sa dplyr

Paket dplyr, još jedna kreacija Hadley Wickhama, predstavlja gramatiku manipulacije podacima. Pruža skup funkcija za transformaciju podataka, uključujući filtriranje, raspoređivanje, grupisanje, sumiranje i dr (Wickham et al., 2021). Naučićete kako da iskoriste moć dplyr-a za efikasno oblikovanje i transformaciju podataka kako bi izvukli zaključke.

Evo sveobuhvatnog vodiča o tome kako da iskoristite efikasnost dplyr-a u R-u.

Instalacija i učitavanje paketa dplyr

Najpre je neophodno instalirati paket dplyr a potom ga i učitati u radno okruženje kako bi bio dostupan za upotrebu. To možete učiniti pomoću sledećih komandi

install.packages("dplyr")

library(dplyr)

Osnovne naredbe

Dplyr se fokusira na nekoliko osnovnih naredbi koje služe kao građevinski blokovi za manipulaciju podacima:

  • filter(): selekcija redova koji ispunjavaju specifične uslove.
  • arrange(): sortiranje redova na osnovu jedne ili više kolona.
  • select(): odabir specifičnih kolona.
  • mutate(): kreiranje novih promenljivih na osnovu postojećih.
  • summarize(): agregiranje podataka za sumiranje.

Povezivanje operacija sa %>%

Sintaksa dplyr-a omogućava povezivanje više operacija zajedno koristeći operator %>% (izgovara se "pipe"). Ovo omogućava kreiranje sekvenci koraka za manipulaciju podacima, čineći kod čitljivijim i konciznijim. Na primer:

result <- dataset %>%

filter(condition) %>%

select(columns) %>%

arrange(order) %>%

group_by(grouping) %>%

summarize(summary)

Filtriranje podataka sa filter()

Funkcija filter() omogućava selekciju redova na osnovu specifičnih uslova. Na primer:

filtered_data <- dataset %>% filter(column > value)

Raspoređivanje podataka sa arrange()

Funkcija arrange() se koristi za sortiranje redova na osnovu jedne ili više kolona. Na primer:

sorted_data <- dataset %>% arrange(column1, column2)

Odabir kolona sa select()

select() omogućava odabir specifičnih kolona iz vašeg skupa podataka. Na primer:

selected_columns <- dataset %>% select(column1, column2)

Kreiranje novih promenljivih sa mutate()

mutate() se koristi za kreiranje novih promenljivih transformacijom postojećih. Na primer:

mutated_data <- dataset %>% mutate(new_variable = old_variable * 2)

Sumiranje podataka sa summarize()

Funkcija summarize() omogućava agregiranje podataka, stvarajući sažetak. Ovo se često koristi u kombinaciji sa group_by(), što omogućava sumiranje po grupama. Na primer:

summary_data <- dataset %>% group_by(group_variable) %>% summarize(mean_value = mean(target_variable))

Koristeći dplyr i tidyr, možete efikasno manipulirati podacima i pripremiti ih za dalju analizu i vizualizaciju. Ovi alati omogućavaju jednostavnu, ali moćnu obradu podataka, olakšavajući analitičku putanju.



Otključavanje potencijala ggplot2

ggplot2 je sveobuhvatan paket za vizualizaciju podataka koji je razvio Hadley Wickham, a poznat je po svojoj fleksibilnosti i eleganciji (Wickham, 2016). Omogućava kreiranje složenih i informativnih grafikona. Ovde ćete upoznati srž vizualizacije podataka sa ggplot2, učeći kako da konstruišete složene grafike koji prikazuju odnose, trendove i obrasce unutar podataka.

Kao što je već pomenuto, ggplot2 nudi strukturisan i slojevit pristup kreiranju kompleksnih grafikona.

 

Evo detaljnog vodiča o otključavanju potencijala ggplot2 u R-u

Instalacija i učitavanje paketa ggplot2

Ako već niste, potrebno je da instalirate i učitate paket ggplot2. To možete učiniti pomoću sledećih komandi:

install.packages("ggplot2") library(ggplot2)

Osnovna gramatika ggplot2

ggplot2 je zasnovan na konceptu "gramatike grafika", koja pruža strukturisan način kreiranja grafikona. Osnovne komponente ggplot2 grafikona uključuju podatke, estetsko mapiranje, geometrijske objekte (geoms) i fasete. Osnovna struktura ggplot2 grafikona izgleda ovako:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point()

Podaci i estetika

Argument data predstavlja skup podataka sa kojim radite.

Funkcija aes() (estetsko mapiranje) koristi se za definisanje kako su promenljive mapirane na vizuelne elemente u grafikonu. Na primer, možete mapirati x i y promenljive podataka na x i y ose grafikona.

Geometrijski objekti (Geomi)

Geometrijski objekti, ili geomi, definišu tip grafikona koji želite da kreirate. Neki uobičajeni geomi uključuju:

  • geom_point(): kreira scatterplot.
  • geom_line(): generiše linijske grafikone.
  • geom_bar(): konstruira stubičaste grafikone.
  • geom_boxplot(): proizvodi boxplotove.

Prilagođavanje grafikona

ggplot2 nudi široke mogućnosti za prilagođavanje izgleda grafikona. Možete modifikovati naslov grafikona, oznake osa, legendu, boje i teme. Na primer:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + labs(title = "Your Plot Title", x = "X-Axis Label", y = "Y-Axis Label") + theme_minimal()

Višestruki geomi i slojevi

Možete kreirati složene grafike dodavanjem više geoma i slojeva na isti grafikon. Ovo omogućava da predstavite različite aspekte podataka na jednoj slici. Na primer:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + geom_smooth(method = "lm", color = "red")

Faceting

Faceting omogućava kreiranje više grafikona istovremeno, tako da svaki prikazujući različiti podskup podataka. Za to se mogu koristiti funkcije facet_wrap() ili facet_grid(). Na primer:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + facet_wrap(~category_variable)

Čuvanje vašeg grafikona

Možete sačuvati vaš grafikon u datoteku koristeći funkciju ggsave(). Na primer:

ggsave("your_plot.png", width = 6, height = 4, dpi = 300)

Praksa i istraživanje

Da biste postali vešti u korišćenju ggplot2, najbitnija je vežba, najbolje sa svojim sopstvenim skupovima podataka i istraživanje dostupnih opcija i geoma. Eksperimentisanjem postajete bolji u kreiranju bogatih i informativnih vizualizacija.

Zajednica i resursi

Pridružite se R i ggplot2 zajednici kako biste tražili pomoć i delili svoje vizualizacije. Postoji mnogo online resursa, tutorijala i knjiga posvećenih ggplot2 koji mogu dodatno unaprediti vaše znanje.

Savladavanjem ggplot2, imaćete alate za kreiranje složenih i bogatih vizualizacija, poboljšavajući vašu sposobnost da efektivno prenosite podatke i zaključke zasnovane na podacima.

 

Prilagođavanje estetike grafikona

U vizualizaciji podataka, prilagođavanje je ključno za stvaranje uticajnih vizuala. Istražićemo kako fino podesiti estetiku grafikona, uključujući boje, teme i fontove, kako bi vaše vizualizacije bile ne samo informativne već i vizuelno privlačne.

U vizualizaciji podataka, prilagođavanje igra vitalnu ulogu u kreiranju vizuelno privlačnih i informativnih grafikona. ggplot2, moćan paket za vizualizaciju u R-u, pruža široke mogućnosti za prilagođavanje estetike grafikona, uključujući boje, teme i fontove.

Teme

ggplot2 nudi različite teme koje kontrolišu ukupni izgled grafikona. Podrazumevana tema je prilično minimalistička, ali možete izabrati teme poput theme_minimal(), theme_bw(), ili theme_classic() da promenite izgled vašeg grafikona.

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + theme_minimal()

Boje

Možete prilagođavati boje u grafikonu, od boja ispune i ivica podataka do pozadinskih i tekstualnih boja. Funkcije scale_fill_manual() i scale_color_manual() omogućavaju da definišete prilagođene palete boja.

ggplot(data = your_data, aes(x = x_variable, y = y_variable, color = category_variable)) + geom_point() + scale_color_manual(values = c("red", "blue", "green"))

Fontovi i tekst

Možete prilagođavati estetiku povezanu sa tekstom, poput veličine fonta, porodice fonta i orijentacije teksta. Funkcija theme() se koristi za ovu svrhu.

ggplot(data = your_data, aes(x = x_variable, y = y_variable, label = data_labels)) + geom_text(size = 12, family = "Arial", angle = 45) + theme(text = element_text(family = "Arial", size = 14))

Legende i ose

Prilagođavanje legendi, naslova i oznaka osa je esencijalno. Možete koristiti funkcije kao što je labs() da promenite naslov grafikona i oznake osa. Funkcija theme() je takođe korisna za prilagođavanje teksta osa.

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + labs(title = "Customized Plot Title", x = "X-Axis Label", y = "Y-Axis Label") + theme(axis.text.x = element_text(size = 12, angle = 45))

 

Čuvanje prilagođenih grafikona

Kada ste prilagodili estetiku grafikona, možete sačuvati grafikon u datoteku koristeći funkciju ggsave().

ggsave("custom_plot.png", width = 6, height = 4, dpi = 300)

Savladavanjem ggplot2, imaćete alate za kreiranje složenih i uvida bogatih vizualizacija, poboljšavajući vašu sposobnost da efektivno prenosite podatke i zaključke zasnovane na podacima.



Alat za obradu vremenskih podataka: lubridate

Rad sa vremenskim podacima može biti izazovan, ali uz pomoć paketa lubridate može se lako upravljati datumima i vremenima u R-u (Spinu et al., 2021). Ovaj alat omogućava ekspertizu u manipulaciji i analizi vremenskih podataka, otvarajući novu dimenziju u analizi podataka.

Instalacija i učitavanje lubridate

Ako već niste, instalirajte i učitajte paket lubridate u vašem R okruženju.

install.packages("lubridate")

library(lubridate)

Parsiranje datuma

lubridate omogućava parsiranje niza karaktera u objekte datuma koristeći funkcije kao što su ymd() (godina, mesec, dan) ili dmy() (dan, mesec, godina). Na primer:

date_string <- "2022-12-31"

date <- ymd(date_string)

Aritmetika sa datumima

Možete izvoditi razne operacije na objektima datuma, kao što su računanje vremenskih intervala, dodavanje ili oduzimanje dana i pronalaženje razlike između dva datuma.

today <- ymd("2023-03-15")

future_date <- today + days(30)

time_difference <- difftime(future_date, today)

Ekstrakcija komponenti

lubridate omogućava ekstrakciju specifičnih komponenti iz objekata datuma, kao što su godina, mesec, dan, sat, minut i sekunda.

year(today)

month(today)

Formatiranje datuma

Možete formatirati objekte datuma u prilagođene nizove za prikazivanje.

format(today, format = "%B %d, %Y")

Rukovanje vremenskim zonama

Paket takođe podržava vremenske zone i letnje računanje vremena, osiguravajući tačne vremenske proračune širom različitih vremenskih zona.

lubridate je neprocenjiv alat za svakog analitičara podataka ili istraživača koji radi sa vremenskim podacima, jer pojednostavljuje često složene zadatke povezane sa analizom vremenskih serija i manipulacijom podacima.



Paket forcats, koji je razvio Hadley Wickham, nudi različite funkcije za manipulaciju i vizualizaciju kategorijalnih podataka.

Instalacija i učitavanje

Ako već niste, instalirajte i učitajte paket forcats u vašem R okruženju.

install.packages("forcats") library(forcats)

Reorderanje nivoa faktora

Paket forcats vam omogućava reorderanje nivoa faktora na osnovu određenih kriterijuma, olakšavajući kontrolu redosleda prikaza kategorijalnih promenljivih u grafikama.

your_data$your_factor <- fct_reorder(your_data$your_factor, your_variable)

Promena nivoa faktora

Možete menjati nivoe faktora, spajajući ili rekodirajući ih radi bolje jasnoće u vizualizacijama.

your_data$your_factor <- fct_collapse(your_data$your_factor, "New Level" = c("Old Level 1", "Old Level 2"))

Vizualizacija kategorijalnih podataka

forcats pruža funkcije poput fct_count() za efikasnu vizualizaciju frekvencije svakog nivoa u kategorijalnoj promenljivoj.

ggplot(data = your_data, aes(x = fct_reorder(your_factor, your_variable))) + geom_bar() + coord_flip()

Rukovanje preklapajućim oznakama

U nekim slučajevima možete naići na preklapajuće oznake prilikom vizualizacije kategorijalnih podataka. Funkcija fct_lump() vam omogućava grupisanje retkih nivoa u kategoriju "Ostalo", smanjujući nered.

your_data$your_factor <- fct_lump(your_data$your_factor, n = 5)

Proširivanje horizonta sa gridExtra

Paket gridExtra poboljšava vaše sposobnosti vizualizacije podataka omogućavajući vam da rasporedite više grafikona kreiranih sa ggplot2 u jedan vizuelni prikaz. Ovo je neprocenjivo za prenošenje kompleksnih informacija na strukturiran i sveobuhvatan način.

Instalacija i učitavanje

Ako već niste, instalirajte i učitajte paket gridExtra u vašem R okruženju.

install.packages("gridExtra")

library(gridExtra)

Kreiranje kompozitnih grafikona

Sa gridExtra, možete kreirati kompozitne grafike raspoređujući pojedinačne ggplot2 grafikone u različite rasporede, kao što su redovi ili kolone.

composite_plot <- grid.arrange(plot1, plot2, ncol = 2)

Prilagođavanje rasporeda

Imate kontrolu nad rasporedom, razmakom i poravnanjem grafikona unutar kompozitnog prikaza, omogućavajući vam da dizajnirate vizuale koji odgovaraju vašim specifičnim potrebama.

composite_plot <- arrangeGrob(plot1, plot2, ncol = 2, top = "Composite Plot Title")

Čuvanje kompozitnih grafikona

Kada kreirate kompozitni grafikon, možete ga sačuvati kao sliku ili ga uključiti u izveštaje i prezentacije.

ggsave("composite_plot.png", composite_plot, width = 8, height = 6, dpi = 300)

Savladavanjem paketa forcats za manipulaciju kategorijalnim podacima i paketa gridExtra za naprednu vizualizaciju, imaćete alate potrebne za efikasno upravljanje i vizualizaciju vaših podataka, posebno kada se bavite složenim kategorijalnim informacijama.

Tokom ovog modula, stekli ste napredne veštine u manipulaciji i vizualizaciji podataka koje će vam omogućiti da se izvršavate složene zadatke analize podataka, transformišete nesređene, sirove podatke u vredne pregledne podatke i kreirate informativne i napredne vizualizacije. Savladavanjem tidyr, dplyr, ggplot2 i drugig specijalizovanih paketa, vaša sposobnost da radite sa raznovrsnim skupovima podataka i proizvodite informativne vizuale postaće deo vas. Ove veštine će vam poslužiti kao čvrst temelj za naprednu analizu podataka i istraživanje na polju istraživanja podataka.



Auguie, B. (2017). gridExtra: Miscellaneous functions for "Grid" Graphics. R package version 2.3.

Spinu, V., Grolemund, G., & Wickham, H. (2021). lubridate: Make dealing with dates a little easier. R package version 1.8

Wickham, H. (2021). forcats: Tools for working with categorical variables (Factors). R package version 0.5.1.