1.1. R objekti
R predstavlja objekat orijentisani programski jezik čije osnovne klase objekata čine: vektori, faktori, matrice, liste i data frameovi. Funkcije za kreiranje osnovnih R objekata dio su bazične konfiguracije i kao takve mogu se koristiti bez prethodne instalacije bilo kakvih dodatnih paketa. Svaki objekat može biti prikazan samo u R konzoli, ili može biti pripisan objektu određenog naziva korišćenjem znakova: <-
, =
. Standard za pripisivanje određenih vrijednosti R objektu jeste <-
, pa će taj znak biti korišćen u daljem tekstu priručnika.
Funkcija za definisanje vektora u R-u jeste c()
, a vektori mogu biti: numerički, karakterni i logički.
Primjer 3:
> c(1, 2, 3, 4, 5)
[1] 1 2 3 4 5
> 1:5
[1] 1 2 3 4 5
> c("a", "b", "c")
[1] "a" "b" "c"
> c(TRUE, FALSE)
[1] TRUE FALSE
Faktori predstavljaju posebnu klasu R objekata, koja se najčešće odnosi na kvalitativna obilježja. Osnovna karakteristika faktora jeste da obilježje, definisano kao faktor, može da uzme određeni broj limitiranih vrijednosti, koje mogu biti sortirane po nivoima. Veliku primjenu faktori nalaze u procesima agregacije podataka, pri čemu treba definisati redosljed prikazivanja agregiranih podataka, a posebno u procesima statističkih modeliranja, kao što je na primjer linearna regresija.
Primjer 4:
> mjeseci <- factor(x = c("Feb", "Jan", "Apr", "Mar", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"))
> mjeseci
[1] Feb Jan Apr Mar Maj Jun Jul Avg Sep Okt Nov Dec
Levels: Apr Avg Dec Feb Jan Jul Jun Maj Mar Nov Okt Sep
> sort(mjeseci)
[1] Apr Avg Dec Feb Jan Jul Jun Maj Mar Nov Okt Sep
Levels: Apr Avg Dec Feb Jan Jul Jun Maj Mar Nov Okt Sep>
> mjeseci_sort <- factor(x = mjeseci, levels = c("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"), order = TRUE)
> mjeseci_sort
[1] Feb Jan Apr Mar Maj Jun Jul Avg Sep Okt Nov Dec
Levels: Jan < Feb < Mar < Apr < Maj < Jun < Jul < Avg < Sep < Okt < Nov < Dec
> sort(mjeseci_sort)
[1] Jan Feb Mar Apr Maj Jun Jul Avg Sep Okt Nov Dec
Levels: Jan < Feb < Mar < Apr < Maj < Jun < Jul < Avg < Sep < Okt < Nov < Dec
Matrice kao R objekat mogu biti generisane i od regularnih nizova podataka sa zadatim brojem kolona i redova.
Primjer 5:
> matrix(1:12, ncol = 4)
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
Liste kao najkompleksnija R struktura omogućavaju kombinovanje različitih R struktura u jednu.
Primjer 6:
> list(a = c(letters[1:5]), b = matrix(1:12, ncol = 4))
$a
[1] "a" "b" "c" "d" "e"
$b
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
Data frameovi, najčešće korišćena R struktura podataka, predstavljaju poseban oblik liste i omogućavaju smještanje numeričkih i karakternih podataka u jedan R objekat. Za razliku od matrica koje su u prvom redu namijenjene smještanju numeričkih podatka, data frameovi omogućavaju korisniku da kombinuje različite tipove podataka u jedan dvodimenzionalni (redovi i kolone) objekat.
Primjer 7:
> data.frame(x1 = c(1:5), x2 = LETTERS[seq(1, 20, by = 4)])
x1 x2
1 1 A
2 2 E
3 3 I
4 4 M
5 5 Q
Pristupanje R objektima vrši se pomoću uglastih zagrada [ ]
. Ipak, važno je pomenuti da R objekti imaju svoje dimenzije i u zavisnosti od dimenzije objekta na različite načine pristupamo njihovim elementima. Na primjer, vektori imaju samo dužinu, faktori dužinu i broj nivoa, matrice i data frameovi imaju redove i kolone, dok liste imaju dužinu, a u zavisnosti od elemenata (da li su vektori, matrice, data frame-ovi ili liste), liste mogu sadržati bilo koji R objekat različitih dimenzija. Pored uglastih zagrada elementima data framea i listi može se pristupiti i korišćenjem znaka $
.
Primjer 8:
> x <- 1:6
> x
[1] 1 2 3 4 5 6
> #prva tri elementa vektora
> x[1:3]
[1] 1 2 3
> length(x)
[1] 6
> DF <- data.frame(x1 = c(1:5), x2 = LETTERS[seq(1, 20, by = 4)])
> DF
x1 x2
1 1 A
2 2 E
3 3 I
4 4 M
5 5 Q
> dim(DF)
[1] 5 2
> #prvi red
> DF[1, ]
x1 x2
1 1 A
> #druga kolona (indeks kolone)
> DF[, 2, drop = FALSE]
x2
1 A
2 E
3 I
4 M
5 Q
> #kolona x2 (naziv kolone)
> DF[, "x2", drop = FALSE]
x2
1 A
2 E
3 I
4 M
5 Q
> #redovi za koje je x1 vece od 3
> DF[DF$x1 > 3, ]
x1 x2
4 4 M
5 5 Q
> dim(x)
NULL
> l <- list(a = c(letters[1:5]), b = matrix(1:12, ncol = 4))
> l
$a
[1] "a" "b" "c" "d" "e"
$b
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> l[[1]][c(2,4)]
[1] "b" "d"
> l$b
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
Last updated
Was this helpful?