dr.sc. Luka Šikić
28 listopad, 2019
rm(list = ls()) # očisti radni prostor
library(lsr) # Učitaj paket
load(file.path("nightgarden.Rdata")) # Uvezi podatke
who() # Pregledaj radni prostor## -- Name -- -- Class -- -- Size --
## speaker character 10
## utterance character 10
## [1] "upsy-daisy" "upsy-daisy" "upsy-daisy" "upsy-daisy" "tombliboo"
## [6] "tombliboo" "makka-pakka" "makka-pakka" "makka-pakka" "makka-pakka"
## [1] "pip" "pip" "onk" "onk" "ee" "oo" "pip" "pip" "onk" "onk"
## speaker
## makka-pakka tombliboo upsy-daisy
## 4 2 4
## utterance
## ee onk oo pip
## 1 4 1 4
## utterance
## speaker ee onk oo pip
## makka-pakka 0 2 0 2
## tombliboo 1 0 1 0
## upsy-daisy 0 2 0 2
# Formiraj podatkovni okvir (`data.frame()`)
df_tab <- data.frame(speaker, utterance)
df_tab # Pogledaj df## speaker utterance
## 1 upsy-daisy pip
## 2 upsy-daisy pip
## 3 upsy-daisy onk
## 4 upsy-daisy onk
## 5 tombliboo ee
## 6 tombliboo oo
## 7 makka-pakka pip
## 8 makka-pakka pip
## 9 makka-pakka onk
## 10 makka-pakka onk
## utterance
## speaker ee onk oo pip
## makka-pakka 0 2 0 2
## tombliboo 1 0 1 0
## upsy-daisy 0 2 0 2
## utterance
## speaker ee onk oo pip
## makka-pakka 0 2 0 2
## tombliboo 1 0 1 0
## upsy-daisy 0 2 0 2
## utterance
## speaker ee onk oo pip
## makka-pakka 0 2 0 2
## tombliboo 1 0 1 0
## upsy-daisy 0 2 0 2
## utterance
## speaker ee onk oo pip
## makka-pakka 0.0 0.5 0.0 0.5
## tombliboo 0.5 0.0 0.5 0.0
## upsy-daisy 0.0 0.5 0.0 0.5
## utterance
## speaker ee onk oo pip
## makka-pakka 0.0 0.5 0.0 0.5
## tombliboo 1.0 0.0 1.0 0.0
## upsy-daisy 0.0 0.5 0.0 0.5
## [1] 1 7 3 4 4 4 2 6 5 5
## [1] -3 3 -1 0 0 0 -2 2 1 1
# Druga transformacija
apsolutna_serija <- abs( centrirana_serija )
apsolutna_serija # Pogledaj podatke## [1] 3 3 1 0 0 0 2 2 1 1
## [1] -1 1 -1 0 0 0 -1 1 1 1
# Poveži sve transformacije u podatkovni okvir
df_likert <- data.frame( likert.raw ) # Stvori data frame
df_likert$centrirano <- df_likert$likert.raw - 4 # Centriraj
df_likert$apsolutno <- abs( df_likert$centrirano ) # Apsolutno
df_likert$smjer <- sign( df_likert$centrirano ) # Smjer
df_likert # Pogledaj podatke## likert.raw centrirano apsolutno smjer
## 1 1 -3 3 -1
## 2 7 3 3 1
## 3 3 -1 1 -1
## 4 4 0 0 0
## 5 4 0 0 0
## 6 4 0 0 0
## 7 2 -2 2 -1
## 8 6 2 2 1
## 9 5 1 1 1
## 10 5 1 1 1
# Stvori podatke
godine <- c( 60,58,24,26,34,42,31,30,33,2,9 )
# Napravi intervalni vektor
intervali_godine <- seq( from = 0, to = 60, by = 20 )
intervali_godine # Pogledaj## [1] 0 20 40 60
## [1] "mlado" "odraslo" "staro"
# Napravi intervalni vektor
godine_intervali_nazivi <- cut (x = godine,
breaks = intervali_godine,
labels = nazivi_godine)
godine_intervali_nazivi # Pogledaj podatke (faktor!)## [1] staro staro odraslo odraslo odraslo staro odraslo odraslo
## [9] odraslo mlado mlado
## Levels: mlado odraslo staro
## godine_intervali_nazivi
## mlado odraslo staro
## 2 6 3
## godine godine_intervali_nazivi
## 1 60 staro
## 2 58 staro
## 3 24 odraslo
## 4 26 odraslo
## 5 34 odraslo
## 6 42 staro
## 7 31 odraslo
## 8 30 odraslo
## 9 33 odraslo
## 10 2 mlado
## 11 9 mlado
## [1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
## [1] "pip" "pip" "onk" "onk"
## [1] "pip" "pip" "onk" "onk"
## [1] TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
## [1] "upsy-daisy" "upsy-daisy" "tombliboo" "makka-pakka" "makka-pakka"
## [1] "pip" "onk"
## [1] "pip" "onk" "ee" "oo" "pip" "pip" "onk" "onk"
# Podjela vektora na grupe
govor_chr <- split( x = utterance, f = speaker) # Podijeli
govor_chr # Pogledaj## $`makka-pakka`
## [1] "pip" "pip" "onk" "onk"
##
## $tombliboo
## [1] "ee" "oo"
##
## $`upsy-daisy`
## [1] "pip" "pip" "onk" "onk"
## speaker utterance
## 1 upsy-daisy pip
## 2 upsy-daisy pip
## 3 upsy-daisy onk
## 4 upsy-daisy onk
## 5 tombliboo ee
## 6 tombliboo oo
## 7 makka-pakka pip
## 8 makka-pakka pip
## 9 makka-pakka onk
## 10 makka-pakka onk
# Izvuci podatke i spremi u novu varijablu
df <- subset(x = df_tab, # Podatci
subset = speaker == "makka-pakka", # Izvuci iz kolone
select = utterance) # Izaberi varijablu
print(df) # Prikaži## utterance
## 7 pip
## 8 pip
## 9 onk
## 10 onk
# Izvuci podatke "on the fly"
subset( x = df_tab, # Podatci
subset = speaker == "makka-pakka" ) # Izvuci iz kolone## speaker utterance
## 7 makka-pakka pip
## 8 makka-pakka pip
## 9 makka-pakka onk
## 10 makka-pakka onk
## utterance
## 1 pip
## 2 pip
## 3 onk
## 4 onk
## 5 ee
## 6 oo
## 7 pip
## 8 pip
## 9 onk
## 10 onk
# Izvlačenje podataka pomoću zagrada
load(file.path("nightgarden2.Rdata")) # Uvezi novce podatke
garden # Pogledaj## speaker utterance line
## case.1 upsy-daisy pip 1
## case.2 upsy-daisy pip 2
## case.3 tombliboo ee 5
## case.4 makka-pakka pip 7
## case.5 makka-pakka onk 9
| Red | Kolona_1 | Kolona_2 | Kolona_3 |
|---|---|---|---|
| 1 | [1,1] | [1,2] | [1,3] |
| 2 | [2,1] | [2,2] | [2,3] |
| 3 | [3,1] | [3,2] | [3,3] |
| 4 | [4,1] | [4,2] | [4,3] |
| 5 | [5,1] | [5,2] | [5,3] |
## speaker utterance
## case.4 makka-pakka pip
## case.5 makka-pakka onk
## speaker utterance
## case.4 makka-pakka pip
## case.5 makka-pakka onk
## speaker utterance
## case.1 upsy-daisy pip
## case.2 upsy-daisy pip
## case.3 tombliboo ee
## case.4 makka-pakka pip
## case.5 makka-pakka onk
## speaker utterance line
## case.1 upsy-daisy pip 1
## case.2 upsy-daisy pip 2
## case.4 makka-pakka pip 7
## case.5 makka-pakka onk 9
## line
## case.1 1
## case.2 2
## case.3 5
## case.4 7
## case.5 9
# Sortiranje numeričkog niza
brojevi <- c(3,1,4,2) # Napravi numerički vektor
sort(x = brojevi) # Sortiraj## [1] 1 2 3 4
## [1] 4 3 2 1
# Sortiranje tekstualnog vektora
tekst <- c("aardvark", "zebra", "swing") # Napravi tekstualni vektor
sort( tekst ) # Sortiraj## [1] "aardvark" "swing" "zebra"
## [1] aardvark zebra swing
## Levels: aardvark swing zebra
## [1] aardvark swing zebra
## Levels: aardvark swing zebra
fac <- factor( tekst, levels = c("zebra","swing","aardvark") ) # Stvori faktorski vektor
fac # Pogledaj## [1] aardvark zebra swing
## Levels: zebra swing aardvark
## speaker utterance line
## case.5 makka-pakka onk 9
## case.4 makka-pakka pip 7
## case.3 tombliboo ee 5
## case.2 upsy-daisy pip 2
## case.1 upsy-daisy pip 1
## speaker utterance line
## case.1 upsy-daisy pip 1
## case.2 upsy-daisy pip 2
## case.3 tombliboo ee 5
## case.4 makka-pakka pip 7
## case.5 makka-pakka onk 9
# Napravi dva vektora
torta.1 <- c(100, 80, 0, 0, 0)
torta.2 <- c(100, 100, 90, 30, 10)
# Spoji u df
torta.df <- data.frame( torta.1, torta.2 )
torta.df## torta.1 torta.2
## 1 100 100
## 2 80 100
## 3 0 90
## 4 0 30
## 5 0 10
## torta.1 torta.2
## [1,] 100 100
## [2,] 80 100
## [3,] 0 90
## [4,] 0 30
## [5,] 0 10
## [,1] [,2] [,3] [,4] [,5]
## torta.1 100 80 0 0 0
## torta.2 100 100 90 30 10
## time.1 time.2 time.3 time.4 time.5
## cake.1 100 80 0 0 0
## cake.2 100 100 90 30 10
## cake.3 100 20 20 20 20
## cake.4 100 100 100 100 100
## [1] "matrix"
# Traansponiraj podatke
cakes.transponirano <- t( cakes ) # Transponiraj
cakes.transponirano # Pogledaj## cake.1 cake.2 cake.3 cake.4
## time.1 100 100 100 100
## time.2 80 100 20 100
## time.3 0 90 20 100
## time.4 0 30 20 100
## time.5 0 10 20 100
## [1] "matrix"
## speaker utterance
## 1 upsy-daisy pip
## 2 upsy-daisy pip
## 3 upsy-daisy onk
## 4 upsy-daisy onk
## [1] "data.frame"
## [,1] [,2] [,3] [,4] [,5]
## speaker "upsy-daisy" "upsy-daisy" "upsy-daisy" "upsy-daisy" "tombliboo"
## utterance "pip" "pip" "onk" "onk" "ee"
## [,6] [,7] [,8] [,9]
## speaker "tombliboo" "makka-pakka" "makka-pakka" "makka-pakka"
## utterance "oo" "pip" "pip" "onk"
## [,10]
## speaker "makka-pakka"
## utterance "onk"
## [1] "matrix"
## V1 V2 V3 V4 V5 V6
## speaker upsy-daisy upsy-daisy upsy-daisy upsy-daisy tombliboo tombliboo
## utterance pip pip onk onk ee oo
## V7 V8 V9 V10
## speaker makka-pakka makka-pakka makka-pakka makka-pakka
## utterance pip pip onk onk
## [1] "data.frame"
# Učitaj podatke
rm(list = ls()) # Očisti prostor
load(file.path("./repeated.Rdata")) # Učitaj podatke
who() # Pogledaj podatke u radnom prostoru## -- Name -- -- Class -- -- Size --
## choice data.frame 4 x 10
## drugs data.frame 10 x 8
## id gender WMC_alcohol WMC_caffeine WMC_no.drug RT_alcohol RT_caffeine
## 1 1 female 3.7 3.7 3.9 488 236
## 2 2 female 6.4 7.3 7.9 607 376
## 3 3 female 4.6 7.4 7.3 643 226
## 4 4 male 6.4 7.8 8.2 684 206
## 5 5 female 4.9 5.2 7.0 593 262
## 6 6 male 5.4 6.6 7.2 492 230
## RT_no.drug
## 1 371
## 2 349
## 3 412
## 4 252
## 5 439
## 6 464
## id gender drug WMC RT
## 1 1 female alcohol 3.7 488
## 2 2 female alcohol 6.4 607
## 3 3 female alcohol 4.6 643
## 4 4 male alcohol 6.4 684
## 5 5 female alcohol 4.9 593
## 6 6 male alcohol 5.4 492
## id gender WMC_alcohol RT_alcohol WMC_caffeine RT_caffeine WMC_no.drug
## 1 1 female 3.7 488 3.7 236 3.9
## 2 2 female 6.4 607 7.3 376 7.9
## 3 3 female 4.6 643 7.4 226 7.3
## 4 4 male 6.4 684 7.8 206 8.2
## 5 5 female 4.9 593 5.2 262 7.0
## 6 6 male 5.4 492 6.6 230 7.2
## 7 7 male 7.9 690 7.9 259 8.9
## 8 8 male 4.1 486 5.9 230 4.5
## 9 9 female 5.2 686 6.2 273 7.2
## 10 10 female 6.2 645 7.4 240 7.8
## RT_no.drug
## 1 371
## 2 349
## 3 412
## 4 252
## 5 439
## 6 464
## 7 327
## 8 305
## 9 327
## 10 498
# Stvori tekstualni vektor.
zivotinje <- c( "mačka", "pas", "klokan", "kit" )
# Samo prva tri slova u riječi
strtrim( x = zivotinje, width = 3 )## [1] "mač" "pas" "klo" "kit"
## [1] "ač" "as" "lo" "it"
## [1] "hello world"
## [1] "hello.world"
# Složenije spajanje
hw <- c( "hello", "world" ) # Stvori txt vektor
ag <- c( "annonymus", "government" ) # Stvori txt vektor
paste( hw, ag ) # Spoji## [1] "hello annonymus" "world government"
## [1] "hello.annonymus:::world.government"
# Definiraj tekstualnu varijablu
annonymus <- "To su bila najbolja vremena. To su uistinu bila najbolja imena."
# Razdvoji tekstualnu varijablu
annonymus1 <- strsplit(x = annonymus, split = " ", fixed = TRUE)
annonymus1 # Pogledaj podatke## [[1]]
## [1] "To" "su" "bila" "najbolja" "vremena." "To"
## [7] "su" "uistinu" "bila" "najbolja" "imena."
## [1] "To" "su" "bila" "najbolja" "vremena." "To"
## [7] "su" "uistinu" "bila" "najbolja" "imena."
# Stvori vektor
pivo <- c("crno pšenično", "mali lager", "svijetlo pšenično")
# Pronađi riječi koje sadržavaju "no"
grep( pattern = "no", x = pivo, fixed = TRUE)## [1] 1 3
# Pronađi riječi koje sadržavaju "no"
grep( pattern = "no", # Traži
x = pivo, # Podatci
fixed = TRUE, # Fiksna separacija
value = TRUE) # Vrati vrijednost## [1] "crno pšenično" "svijetlo pšenično"
# Zamijeni dio riječi
gsub( pattern = "no", # Zamijeni ovo
replacement = "veno", # Zamijeni sa
x = pivo, # Podatci
fixed = TRUE) # Fiksna separacija ## [1] "crveno pšeničveno" "mali lager" "svijetlo pšeničveno"
# Zamijeni prvi match
sub( pattern = "m", # Zamijeni ovo
replacement = "veno", # Zamijeni sa
x = pivo, # Podatci
fixed = TRUE) # Fiksna separacija## [1] "crno pšenično" "venoali lager" "svijetlo pšenično"
data <- read.csv(
file = file.path("./booksales2.csv"), # Podatci
header = FALSE, # Nazivi kolona
skip = 8, # Preskoči broj redova kod uvoza
quote = "*", # Navodnike tumači kao
sep = "\t", # Razmak je separator
na.strings = "NFI") # Nepostojeće vrijednosti
head( data, 5 ) # Pogledaj podatke## V1 V2 V3 V4
## 1 January 31 0 high
## 2 February 28 100 high
## 3 March 31 200 low
## 4 April 30 50 out
## 5 May 31 NA out
library( foreign ) # Učitaj paket
X <- read.spss( file.path("./datafile.sav" )) # Učitaj spss file
X <- as.data.frame( X ) # Napravi data frame
X <- read.spss( file = "datafile.sav", to.data.frame = TRUE ) # Brža varijanta# Napravi matricu
red_1 <- c(2,3,1) # Stvori vektor
red_2 <- c(5,6,7) # Stvori vekto
M <- rbind(red_1, red_2) # Poveži u matricu
print(M) # Prikaži## [,1] [,2] [,3]
## red_1 2 3 1
## red_2 5 6 7
# Prilagodi matricu
colnames(M) <- c( "col.1", "col.2", "col.3" ) # Dodaj nazive kolona
print(M) # Prikaži## col.1 col.2 col.3
## red_1 2 3 1
## red_2 5 6 7
## [1] 1 7 3 4 4 4 2 6 5 5
# Stvori ordinalnu skalu
likert.ordinal <- factor( x = likert.raw, # Podatcia
levels = seq(7,1,-1), # Najsnažnije 1, najslabije is 7
ordered = TRUE ) # Sortiraj
print( likert.ordinal ) # Pogledaj## [1] 1 7 3 4 4 4 2 6 5 5
## Levels: 7 < 6 < 5 < 4 < 3 < 2 < 1
# Dodaj kategorije
levels( likert.ordinal ) <- c( "snažno.protiv",
"protiv",
"slabo.protiv",
" neutralno",
"slabo.za",
"snažno.za",
"za")
print( likert.ordinal ) # Pogledaj ## [1] za snažno.protiv slabo.za neutralno neutralno
## [6] neutralno snažno.za protiv slabo.protiv slabo.protiv
## 7 Levels: snažno.protiv < protiv < slabo.protiv < ... < za
## [1] "2019-10-28"
## [1] "2019-10-29"
## [1] "2020-10-27"
## [1] "ponedjeljak"