class: center, middle, inverse, title-slide # PRIMJENJENA STATISTIKA ## Predavanje 2: Uvod u R ### Luka Sikic, PhD ### Fakultet hrvatskih studija |
Github PS
--- class: inverse, middle # PREGLED PREDAVANJA --- layout: true # PREGLED PREDAVANJA --- ## Ciljevi <br> <br> <br> <br> - Osnovne naredbe - Što su varijable - Što su funkcije - Kakve vrste podataka postoje - Što su vektori - Logički operatori --- layout: false class: middle, inverse # OSNOVNE NAREDBE --- layout: true # OSNOVNE RAČUNSKE OPERACIJE --- <br> <br> <br> <table> <caption></caption> <thead> <tr> <th style="text-align:right;"> Operacija </th> <th style="text-align:center;"> Operator </th> <th style="text-align:center;"> Input </th> <th style="text-align:center;"> Output </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> zbrajanje </td> <td style="text-align:center;"> `+` </td> <td style="text-align:center;"> 10 + 2 </td> <td style="text-align:center;"> 12 </td> </tr> <tr> <td style="text-align:right;"> odzimanje </td> <td style="text-align:center;"> `-` </td> <td style="text-align:center;"> 9 - 3 </td> <td style="text-align:center;"> 6 </td> </tr> <tr> <td style="text-align:right;"> množenje </td> <td style="text-align:center;"> `*` </td> <td style="text-align:center;"> 5 * 5 </td> <td style="text-align:center;"> 25 </td> </tr> <tr> <td style="text-align:right;"> dijeljenje </td> <td style="text-align:center;"> `/` </td> <td style="text-align:center;"> 10 / 3 </td> <td style="text-align:center;"> 3 </td> </tr> <tr> <td style="text-align:right;"> eksponencija </td> <td style="text-align:center;"> `^` </td> <td style="text-align:center;"> 5 ^ 2 </td> <td style="text-align:center;"> 25 </td> </tr> </tbody> </table> <br> <br> <br> .footer[*Ove naredbe ćemo koristiti kroz cijeli kolegij i korisno ih je zapamtiti!] --- layout: true # PRIMJERI --- <br> ```r # Zbrajanje > 20 + 30 [1] 50 ``` ```r # Oduzimanje > 20 - 30 [1] -10 ``` ```r # Množenje > 57 * 61 [1] 3477 ``` ```r # Eksponencije > 5 * 5 * 5 * 5 # 5^4 [1] 625 # 625 ``` --- layout: false class: middle, inverse # VARIJABLE --- layout: true # OSNOVE RADA S VARIJABLAMA --- <br> <br> ```r # Pripisivanje vrijednosti varijabli placa <- 5500 mjeseci <- 12 ``` <br> ```r # Pregled varijable placa ``` ``` #> [1] 5500 ``` <br> ```r # Kalukulacije sa varijablama placa * mjeseci # Jednako kao 5550*12! ``` ``` #> [1] 66000 ``` --- layout: true # DODATNE MOGUĆNOSTI S VARIJABLAMA --- <br> <br> ```r # Stvori novu varijablu pomoću postojećih godisnja_placa <- placa*mjeseci # Pregled varijable<br> godisnja_placa ``` ``` #> [1] 66000 ``` <br> <br> ```r # 13ta placa godisnja_zarada <- godisnja_placa + 5500 # Pregled varijable godisnja_zarada ``` ``` #> [1] 71500 ``` --- layout: true # KONVENCIJE ZA VARIJABLE --- <br> <br> * sva slova u nazivu varijable su *mala* ili *velika* <br> <br> * rijeci ne smiju sadržavati razmak <br> <br> * **godisnja_zarada** i **Godisnja_zarada** su različite varijable <br> <br> * naziv varijable može imati točku na početku ali (**.godisnja_zarada**) se ne preporuča <br> <br> * naziv varijable ne može biti (REZERVIRANO!): `if`, `else`, `repeat`, `while`, `function`, `for`, `in`, `next`, `break`, `TRUE`, `FALSE`, `NULL`, `Inf`, `NaN`, `NA`, `NA_integer_`, `NA_real_`, `NA_complex_` niti `NA_character_` <br> <br> * naziv varijable treba biti informativan, kratak i prepoznatljiv <br> <br> * preporučene opcije za naziv varijable sa više riječi: **godisnja_zarada** ili **godisnja.zarada** --- layout: false class: middle, inverse # FUNKCIJE --- layout: true # KORIŠTENJE FUNKCIJA ZA RAČUNSKE OPERACIJE --- ```r # Funkcija za korijen sqrt(25) ``` ``` #> [1] 5 ``` ```r #Jednako kao: 25^0.5 ``` ``` #> [1] 5 ``` ```r # Funkcija za uzimanje apsolutne vrijednosti abs(-10) ``` ``` #> [1] 10 ``` ```r # Korištenje dvije funkcije u jednoj naredbi sqrt(1 + abs(-8)) ``` ``` #> [1] 3 ``` --- layout: true # FUNKCIJSKI ARGUMENTI --- <br> <br> ```r # Zaokruži vrijednost;pi round(3.1415) ``` ``` #> [1] 3 ``` <br> <br> ```r # Dodatni funkcijski argumenti;broj decimala round(3.1415,2)#Jednako kao round(x = 3.1415, digits = 2) ``` ``` #> [1] 3.14 ``` --- layout: false class: middle, inverse # VEKTORI --- layout: true # VEKTORI --- <br> <br> - vektor se sastoji od (jedng ili) više elemenata - svi elementi vektora imaju istu klasu - klase mogu biti brojevi, riječi (*string*,*character*), logičke tvrdnje, faktori - za stvaranje vektora se koristi funkcija `combine()`; skraćeno `c()` ```r # NUMERIČKI VEKTOR # Stvori vektor mjesečnih plaća za prvi kvartal u godini kvartalna_placa <- c("5400", "5300", "5500") ``` ```r # Pregled varijable kvartalna_placa ``` ``` #> [1] "5400" "5300" "5500" ``` --- layout: true # PRISTUPANJE ELEMENTU VEKTORA --- <br> <br> ```r # Plaća u veljači kvartalna_placa[2] ``` ``` #> [1] "5300" ``` <br> <br> ```r # Stvori varijablu iz (jednog elementa) vektora placa_u_sijecnju <- kvartalna_placa[2] ``` --- layout: true # DODATNE MOGUĆNOSTI S VEKTORIMA I --- <br> <br> ```r # Koliko ima elemenata u vektoru? length() length(kvartalna_placa) ``` ``` #> [1] 3 ``` <br> <br> ```r # Podijeli sve elemente vektora brojem # 1. konverzija iz "chr" u "numeric" as.numeric(kvartalna_placa) / 7.5 ``` ``` #> [1] 720.0000 706.6667 733.3333 ``` --- layout: true # DODATNE MOGUĆNOSTI S VEKTORIMA II --- <br> <br> ```r # Definiraj tečaj eur <- 7.5 ``` <br> <br> ```r # Plaća u eurima godisnja_placa_eur <- godisnja_placa / eur #Pregled varijable godisnja_placa_eur ``` ``` #> [1] 8800 ``` --- layout: true # VEKTORI S TEKSTUALNIM VARIJABLAMA --- <br> <br> ```r # Stvori tekstualnu varijablu pozdrav <- "ciao" # Pregled varijable pozdrav ``` ``` #> [1] "ciao" ``` <br> <br> ```r # Stvori vektor tekstualnih elemenata prvi_kvartal_mj <- c("sijecanj", "veljaca", "ozujak") # Pregled vektora prvi_kvartal_mj ``` ``` #> [1] "sijecanj" "veljaca" "ozujak" ``` --- layout: true # DODATNE MOGUĆNOSTI S VEKTORIMA III --- <br> <br> ```r # Drugi mjesec veljaca <- prvi_kvartal_mj[2] ``` <br> <br> ```r # Pregled varijable nchar(veljaca) # Jednako: nchar(x = prvi_kvartal[2])! ``` ``` #> [1] 7 ``` ```r # Pregled duljine elemenata(riječi) u vektoru nchar(prvi_kvartal_mj) ``` ``` #> [1] 8 7 6 ``` --- layout: false class: middle, inverse # LOGIČKE VARIJABLE --- layout: true # OSNOVE RADA S LOGIČKIM VARIJABLAMA --- <br> <br> ```r 2 + 2 ``` ``` #> [1] 4 ``` <br> ```r # Logička istina: TRUE 2 + 2 == 4 ``` ``` #> [1] TRUE ``` ```r # Logička ne-istina: FALSE 2 + 2 == 5 ``` ``` #> [1] FALSE ``` --- layout: true # LOGIČKI OPERATORI I --- <br> <br> <table> <caption></caption> <thead> <tr> <th style="text-align:right;"> Operacija </th> <th style="text-align:center;"> Operator </th> <th style="text-align:center;"> Input </th> <th style="text-align:center;"> Odgovor </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> manje </td> <td style="text-align:center;"> < </td> <td style="text-align:center;"> 2 < 3 </td> <td style="text-align:center;"> `TRUE` </td> </tr> <tr> <td style="text-align:right;"> manje ili jednako </td> <td style="text-align:center;"> <= </td> <td style="text-align:center;"> 2 <= 2 </td> <td style="text-align:center;"> `TRUE` </td> </tr> <tr> <td style="text-align:right;"> vece </td> <td style="text-align:center;"> > </td> <td style="text-align:center;"> 2 > 3 </td> <td style="text-align:center;"> `FALSE` </td> </tr> <tr> <td style="text-align:right;"> vece ili jednako </td> <td style="text-align:center;"> >= </td> <td style="text-align:center;"> 2 >= 2 </td> <td style="text-align:center;"> `TRUE` </td> </tr> <tr> <td style="text-align:right;"> jednako </td> <td style="text-align:center;"> == </td> <td style="text-align:center;"> 2 == 3 </td> <td style="text-align:center;"> `FALSE` </td> </tr> <tr> <td style="text-align:right;"> nije jednako </td> <td style="text-align:center;"> != </td> <td style="text-align:center;"> 2 != 3 </td> <td style="text-align:center;"> `TRUE` </td> </tr> </tbody> </table> <br> <br> <br> .footer[*Ovo logičke operatore ćemo koristiti kroz cijeli kolegij i korisno ih je zapamtiti!] --- layout: true # LOGIČKI OPERATORI II --- <br> <br> ```r # Primjeri 99 < 100 ``` ``` #> [1] TRUE ``` ```r 100 <= 99 ``` ``` #> [1] FALSE ``` ```r 2 + 2 != 5 ``` ``` #> [1] TRUE ``` --- layout: true # LOGIČKI OPERATORI III --- <br> <br> <br> <br> <table> <caption></caption> <thead> <tr> <th style="text-align:center;"> Operacija </th> <th style="text-align:center;"> Operator </th> <th style="text-align:center;"> Input </th> <th style="text-align:center;"> Odgovor </th> </tr> </thead> <tbody> <tr> <td style="text-align:center;"> ne </td> <td style="text-align:center;"> ! </td> <td style="text-align:center;"> !(1==1) </td> <td style="text-align:center;"> `FALSE` </td> </tr> <tr> <td style="text-align:center;"> ili </td> <td style="text-align:center;"> | </td> <td style="text-align:center;"> (1==1) | (2==3) </td> <td style="text-align:center;"> `TRUE` </td> </tr> <tr> <td style="text-align:center;"> i </td> <td style="text-align:center;"> & </td> <td style="text-align:center;"> (1==1) & (2==3) </td> <td style="text-align:center;"> `FALSE` </td> </tr> </tbody> </table> <br> <br> <br> .footer[*Ovo logičke operatore ćemo koristiti kroz cijeli kolegij i također ih je korisno zapamtiti!] --- layout: true # LOGIČKI OPERATORI IV --- <br> <br> ```r # Primjeri (2 + 2 == 4) | (2 + 2 == 5) ``` ``` #> [1] TRUE ``` ```r (2 + 2 == 4) & (2 + 2 == 5) ``` ``` #> [1] FALSE ``` ```r !(2 + 2 == 5) ``` ``` #> [1] TRUE ``` --- layout: true # LOGIČKI OPERATORI V --- <br> <br> ```r # Jedna mogucnost da_li_je_ovo_tocno <- 2 + 2 == 5 da_li_je_ovo_tocno ``` ``` #> [1] FALSE ``` ```r # Druga mogucnost ovo_nije_tocno <- FALSE # Jenako kao i F ovo_nije_tocno ``` ``` #> [1] FALSE ``` --- layout: true # VEKTORI S LOGIČKIM VARIJABLAMA --- ```r # Stvori logički vektor x <- c(TRUE, TRUE, FALSE) # Pregled vektora x ``` ``` #> [1] TRUE TRUE FALSE ``` ```r # U kojim mjesecima je plaća bila veća od 5.200kn kvartalna_placa > 5200 ``` ``` #> [1] TRUE TRUE TRUE ``` ```r # Napravi logički vektor za mjesece sa visokom plaćom iznadprosjecna_placa <- kvartalna_placa > 5400 # Pregled vektora iznadprosjecna_placa ``` ``` #> [1] FALSE FALSE TRUE ``` --- layout: true # PRISTUPANJE ELEMENTIMA VEKTORA I --- <br> ```r # Izaberi 2. i 3. mjesec iz kvartala kvartalna_placa[ c(2,3) ] ``` ``` #> [1] "5300" "5500" ``` ```r # Izaberi 1. i 3. mjesec iz kvartala kvartalna_placa[ c(1,3) ] ``` ``` #> [1] "5400" "5500" ``` ```r # Dodatna mogućnost kvartalna_placa[ 1:3 ] ``` ``` #> [1] "5400" "5300" "5500" ``` --- layout: true # PRISTUPANJE ELEMENTIMA VEKTORA II --- <br> <br> <br> ```r # Poveži tekstualni i logički vektor prvi_kvartal_mj[kvartalna_placa > 5400] ``` ``` #> [1] "ozujak" ``` ```r # Stvori novi tekstualni vektor;visina plaće visina_place <- c("niska", "visoka", "visoka") # U kojim mjesecima je bila visoka zarada? prvi_kvartal_mj[ visina_place == "visoka"] ``` ``` #> [1] "veljaca" "ozujak" ``` --- 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: Dodatni koncepti R)