class: center, middle, inverse, title-slide # PRIMJENJENA STATISTIKA ## Predavanje 2: Dodatni koncepti R ### Luka Sikic, PhD ### Fakultet hrvatskih studija |
Github PS
--- class: inverse, middle # PREGLED PREDAVANJA --- layout: true # PREGLED PREDAVANJA --- <br> <br> <br> <br> - Što su paketi <br> - Radni prostor <br> - Učitavanje i spremanje podataka <br> - Specijalne vrijednosti, nazivi i klase varijabli <br> - Slozeniji tipovi varijabli: faktori,podatkovni okviri, liste --- layout: false class: middle, inverse # RAD SA PAKETIMA --- layout: true # RAD SA PAKETIMA --- <br> <br> <br> - paket (*library*) je skup funkcija (podataka i/ili drugih funkcionalnosti) koje je netko napisao i ponudio na korištenje <br> - paketi su javno dostupni (OpenSource) <br> - paket je potrebno jednom instalirati, a učitati se mora pri svakom otvaranju sesije <br> - u okviru ovog kolegija ćemo najviše koristiti nekoliko paketa: <br> - [*base R*](https://stat.ethz.ch/R-manual/R-devel/library/base/html/00Index.html) <br> - [*lsr*](https://cran.r-project.org/web/packages/lsr/index.html) <br> - [*ggplot2*](https://www.statmethods.net/advgraphs/ggplot2.html) <br> - [*psych*](https://cran.r-project.org/web/packages/psych/psych.pdf) <br> - [*car*](https://cran.r-project.org/web/packages/car/index.html) --- layout: true # RAD SA PAKETIMA --- <br> <br> ```r # Instaliraj paket install.packages("lsr") ``` <br> <br> ```r # Učitaj paket library(lsr) # Također require() ``` <br> <br> ```r # Makni paket detach("package:lsr", unload=TRUE) ``` --- layout: false class: middle, inverse # RADNI PROSTOR --- layout: true # RADNI PROSTOR --- <br> <br> <br> ```r # Gdje se nalazi radni folder getwd() [1] "C:/Users/Dropbox/Kolegij_statistika" ``` <br> <br> ```r # Postavi radni folder setwd("C:/Users/Luka/Statistika/...") # Obrati pažnju na "/" vs "\\" ``` --- layout: false class: middle, inverse # UČITAVANJE I SPREMANJE PODATAKA --- layout: true # UČITAVANJE U R --- <br> <br> <br> - *workspace files* imaju `.Rdata` ekstenziju i sadržavaju objekte iz radnog prostora <br> - *.csv*, *.txt*, *.spss* dokumenti sadržavaju podatke koje je potrebno učitati u radni prostor <br> - *script* datoteke sadržavaju napisani kod <br> - postoje i brojni drugi objekti! (npr. RMarkdown) <br> <br> ```r # učitaj u radni prostor load( file = "~/datoteka.Rmd" ) # ~ označava put do radnog direktorija ``` --- layout: true # UČITAVANJE U R --- <br> <br> ```r # Učitaj podatke iz excela podatci_statistika <- read.csv( file = "statistika.csv" ) # U praksi je potrebno prilagoditi funkcijske argumente! # Učitaj tablične podatke read.table(file, header = FALSE, sep = "", dec = ".") # Učitaj txt podatke read.delim(file, header = TRUE, sep = "\t", dec = ".", ...) # Učitaj podatke sa interneta podatciInternet <- read.delim("http://www.sthda.com/upload/boxplot_format.txt") # Učitaj .rdata podatke load("survey.rdata") # Učitaj .rds podatke dataRDS <- readRDS("survey.rds") # Učitaj spss podatke dataSPSS <- read.spss("../survey.save", to.data.frame=TRUE) # Učitaj stata podatke dataStata <- read.dta("survey.dta") ``` --- layout: true # SPREMANJE --- <br> <br> - obično žellimo pohraniti: *radni prostor*, *output*, *skriptu*, *markdown* <br> <br> ```r # Pohrani radni prostor save.image("~/Desktop/radni_prostor.RData") ``` <br> <br> ```r # Pohrani podatke save(neki_podatci, file = "neki_podatci.Rdata") # Output je moguće pohraniti pomoću funkcije sink() ``` --- layout: false class: middle, inverse # SPECIJALNE VRIJEDNOSTI, NAZIVI I KLASE --- layout: true # SPECIJALNE VRIJEDNOSTI --- <br> <br> ```r # Beskonačno 1 / 0 ``` ``` #> [1] Inf ``` <br> ```r # Nije broj 0 / 0 ``` ``` #> [1] NaN ``` <br> - *nije dostupno* `NA` <br> - *nema vrijednosti* `NULL` --- layout: true # DAVANJE NAZIVA ELEMENTIMA VEKTORA --- <br> <br> ```r # Stvori numerički vektor ocjena <- c( 1, 2, 3 ) ocjena # Pregledaj objekt ``` ``` #> [1] 1 2 3 ``` ```r # Pripiši nazive names(ocjena) <- c("nedovoljan","dovoljan","dobar") ocjena # Pregledaj objekt ``` ``` #> nedovoljan dovoljan dobar #> 1 2 3 ``` --- layout: true # DAVANJE NAZIVA ELEMENTIMA VEKTORA --- <br> ```r # Stvori numerički vektor sa nazivima; sve u jednoj naredbi ocjena <- c("nedovoljan" = 1,"dovoljan" = 2,"dobar" = 3) ``` <br> ```r ocjena # Pregledaj objekt ``` ``` #> nedovoljan dovoljan dobar #> 1 2 3 ``` <br> ```r # Indeksiranje pomoću naziva ocjena["dobar"] # Pregledaj objekt ``` ``` #> dobar #> 3 ``` --- layout: true # DAVANJE NAZIVA ELEMENTIMA VEKTORA III --- <br> <br> ```r # Vidi nazive svih elemenata u vektoru names(ocjena) # Pregledaj objekt ``` ``` #> [1] "nedovoljan" "dovoljan" "dobar" ``` --- layout: true # KLASE --- <br> <br> ```r x <- "tekst" # x je tekst class(x) # Pregledaj klasu ``` ``` #> [1] "character" ``` <br> ```r x <- TRUE # x je logička klasa class(x) # Pregledaj klasu ``` ``` #> [1] "logical" ``` <br> ```r x <- 100 # x je broj class(x) # Pregledaj klasu ``` ``` #> [1] "numeric" ``` --- layout: true # FAKTORI --- <br> <br> ```r # Stvori numerički vektor grupa <- c(1,1,1,2,2,3,3) grupa # Pogledaj objekt ``` ``` #> [1] 1 1 1 2 2 3 3 ``` <br> <br> ```r # Pretvori numerički vektor u faktor grupa <- as.factor(grupa) grupa # Pogledaj objekt ``` ``` #> [1] 1 1 1 2 2 3 3 #> Levels: 1 2 3 ``` --- layout: true # FAKTORI --- <br> <br> - računske operacije sa faktorima nisu iste kao sa numeričkim vektorima <br> <br> ```r # zbrajanje faktora i broja ne funkcionira grupa + 2 ``` ``` #> [1] NA NA NA NA NA NA NA ``` --- layout: true # NAZIVI FAKTORA --- <br> <br> ```r # Stvori faktoraku varijablu;spol ispitanika spol <- as.factor(c(1,1,1,1,2,2,2)) spol # Pogledaj objekt ``` ``` #> [1] 1 1 1 1 2 2 2 #> Levels: 1 2 ``` <br> ```r # Pripiši nazive faktorima levels(spol) <- c("muški", "ženski") print(spol) # Prikaži objekt ``` ``` #> [1] muški muški muški muški ženski ženski ženski #> Levels: muški ženski ``` --- layout: false class: middle, inverse # PODATKOVNI OKVIRI (*data frame*;*df*) --- layout: true # PODATKOVNI OKVIRI --- <br> <br> ```r # Za stvaranje df-a ćemo koristiti varijable spol i grupa # Stvaranje dodatne dvije numeričke varijable starost <- c(17, 19, 21, 37, 18, 19, 47) bodovi <- c(12, 15, 16, 14, 25, 21, 29) # Stvori df df <- data.frame( grupa, spol, starost, bodovi ) head(df, 5) # Pogledaj prvih 5 redova df-a ``` ``` #> grupa spol starost bodovi #> 1 1 muški 17 12 #> 2 1 muški 19 15 #> 3 1 muški 21 16 #> 4 2 muški 37 14 #> 5 2 ženski 18 25 ``` --- layout: true # IZVLAČENJE PODATAKA IZ DF-a --- <br> <br> ```r # Pogledaj seriju bodova df$bodovi ``` ``` #> [1] 12 15 16 14 25 21 29 ``` <br> <br> ```r # Pogledaj nazive varijabli (kolona) names(df) ``` ``` #> [1] "grupa" "spol" "starost" "bodovi" ``` --- layout: true # IZVLAČENJE PODATAKA IZ DF-a --- <br> <br> ```r # izvuci prvi red df[1,] ``` ``` #> grupa spol starost bodovi #> 1 1 muški 17 12 ``` ```r # izvuci prvu kolonu df[,1] ``` ``` #> [1] 1 1 1 2 2 3 3 #> Levels: 1 2 3 ``` ```r # izvuci drugi red u trećoj koloni df[2,3] ``` ``` #> [1] 19 ``` --- layout: false class: middle, inverse # LISTE --- layout: true # LISTE --- <br> <br> ```r # Stvori listu ana <- list(godine = 26, # numerička varijabla student = TRUE, # logička varijabla roditelji = c("Marko","Mia")) # character varijabla ana # Pogledaj objekt ``` ``` #> $godine #> [1] 26 #> #> $student #> [1] TRUE #> #> $roditelji #> [1] "Marko" "Mia" ``` --- layout: true # LISTE --- <br> <br> ```r # Pristupi elementima liste ana$student ``` ``` #> [1] TRUE ``` ```r ana$roditelji ``` ``` #> [1] "Marko" "Mia" ``` ```r ana[2] ``` ``` #> $student #> [1] TRUE ``` ```r ana$roditelji[2] ``` ``` #> [1] "Mia" ``` --- layout: true # LISTE --- <br> <br> ```r # Dodaj element u listu ana$mjesto_stanovanja <- "Zagreb" ana # Pogledaj objekt ``` ``` #> $godine #> [1] 26 #> #> $student #> [1] TRUE #> #> $roditelji #> [1] "Marko" "Mia" #> #> $mjesto_stanovanja #> [1] "Zagreb" ``` --- layout: true # LISTE --- <br> <br> ```r # Dodaj element u listu ana$aplikacije <- c("Facebook","Instagram","TikTok","Gmail") ana # Pogledaj objekt ``` ``` #> $godine #> [1] 26 #> #> $student #> [1] TRUE #> #> $roditelji #> [1] "Marko" "Mia" #> #> $mjesto_stanovanja #> [1] "Zagreb" #> #> $aplikacije #> [1] "Facebook" "Instagram" "TikTok" "Gmail" ``` --- layout:false class: middle, inverse # HVALA NA PAŽNJI! <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> (Sljedeće predavanje: Deskriptivna statistika)