[1] 8
[1] 10
[1] 100
Analiza prostorno vremenskih podataka - Master studije geoinformatike, Građevinski fakultet u Beogradu
2026-03-30
Free and open source okruženje dostupno na različitim platformama.R GUI
R GUI
<- ili =.:: Koristi se za kreiranje vektora brojeva u obliku od:do (npr. 1:6).# služi za komentarisanje koda. Sve što stoji desno od znaka # neće se izvršavati.case sensitive
Promenljive u R-u su osetljive na veličinu slova (Case Sensitive), pa su Promenljiva i promenljiva dve različite promenljive.
Svi kreirani objekti se skladište u ovkiru radnog okruženja i mogu se pregledati komandom ls():
Uklanjanje odredenog objekta iz radnog okruženja/memorije vrši se komandom rm():
[1] 3
[1] 6
[1] 3.141593
[1] 1
round() zaokružuje brojeve.factorial() računa faktorijel.pi vraća vrednost broja π.sin() izračunava sinus.sample omogućava nasumično biranje elemenata.[1] 4
sample() služi za uzorkovanje iz vektora.Jedna od veoma korisnih mogućnosti R programskog okruženja je brz i jednostavan uvid u dokumentaciju za određene funkcije, putem komande help. Na primer, da biste saznali više o funkciji sample, jednostavno pozovite:
?sample otvara pomoćni prozor sa svim relevantnim informacijama o funkciji.Funkcije su osnovni gradivni blokovi R programskog jezika. Omogućavaju nam da organizujemo kod, izbegnemo ponavljanje i povećamo efikasnost.
Funkcija je blok koda koji izvršava određeni zadatak.
Sastoji se od:
Funkcija se kreira pomoću ključne reči function() i vitičastih zagrada {}:
ime_funkcije <- function(argumenti) {
# Telo funkcije
return(rezultat) # Povratna vrednost
}
Na primer, funkcija koja simulira bacanje dve kockice i sumiranje rezultata se može kreirati na sledeci nacin:
[1] 5
Ova funkcija nema argumente – koristi fiksne vrednosti.
Funkcija sample() služi za nasumično uzorkovanje.
Argument replace = TRUE omogućava ponavljanje vrednosti.
Argumenti funkcije su promenljive od kojih zavisi rezultat izvršavanja funkcije, i definišu se u okviru operatora function().
Na primer, zamislimo da kockica nema vrednosti od 1 do 6, nego proizvoljnih šest vrednosti koje su definisane pravilima igre. U tom slučaju, mora se ostaviti mogućnost za definisanje vrednosti.
R paketi su osnova R ekosistema. Oni omogućavaju proširivanje funkcionalnosti R-a za različite tematske oblasti.
help dokumentaciju i primere korišćenja.github)install.packages()
library.library().Primer instaliranja i učitavanja paketa readxl:
readxl omogućava funkcije za lako i brzo učitavanje excel fajlova.| Tip | Test | Konverzija |
|---|---|---|
| double | is.double | as.double |
| integer | is.integer | as.integer |
| character | is.character | as.character |
| logical | is.logical | as.logical |
| complex | is.complex | as.complex |
| raw | is.raw | as.raw |
is.vector je komanda koja se koristi za test-proveru da li je određeni objekat vektor.[1] "double"
[1] "integer"
[1] "character"
[1] FALSE
[1] "logical"
[1] "logical"
[1] FALSE FALSE FALSE TRUE
Pravilo konverzije tipova podataka u R-u
Element-wise operacije omogućavaju primenu funkcije ili operatora na svaki element vektora ili matrice pojedinačno.
U R-u, mnoge funkcije su optimizovane da automatski primenjuju operacije na svaki element objekta bez potrebe za eksplicitnim petljama.
Element wise procedura
Vector recycling je procedura u R-u koja omogućava automatsko ponavljanje kraćih vektora kako bi odgovarali dužini dužih vektora prilikom primene operacija između vektora različitih dužina.
Vector recycling procedura
attributes().Postavimo primer objekta die i proverimo njegove atribute.
names, dimensions i classes.dimensions i class)dimensions vrši se komandom dim().class.class, uticaće na komandu print koja se izvrsava u pozadini kada želimo prikazati objekat na ekranu.Dates i times)class omogućava predstavljanje dodatnih tipova podataka, koji su različiti od osnovnih tipova kao što su double, integer, character itd.POSIXct klasu, koja predstavlja datum i vreme kao broj sekundi koje su protekle od 1. januara 1970. godine.Faktorski podaci su posebna vrsta podataka u R-u koji se koriste za predstavljanje kategoričkih promenljivih.
Faktori se kreiraju pomoću funkcije factor().
Matrice su dvo-dimenzionalne strukture u R-u koje skladište podatke u redovima i kolonama.
Matrice se kreiraju pomoću funkcije matrix(). Ključni argumenti su:
nrow – broj redova
ncol – broj kolona
byrow = TRUE/FALSE – način popunjavanja (po redovima ili kolonama)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
Nizovi (arrays) su n-dimenzionalne strukture podataka u R-u koje proširuju koncept matrica na više dimenzija.
Nizovi se kreiraju pomoću funkcije array().
Ključni argumenti su:
- data – ulazni podaci (vektor koji će se oblikovati u niz)
- dim – dimenzije niza (broj redova, kolona i dodatnih slojeva)
Liste su jednodimenzionalne strukture podataka u R-u koje mogu sadržavati objekte različitih tipova.
Liste se kreiraju pomoću funkcije list().
Data Frame je tabelarna struktura podataka u R-u koja skladišti vektore iste dužine u kolonama.
Data Frame-a:U R-u, Data Frame može biti kreiran čak i kada ulazni vektori nisu iste dužine.
U tom slučaju, R primenjuje “element recycling”, tj. ponavlja kraće vektore dok ne dostignu dužinu najdužeg vektora.
# Definisanje vektora različitih dužina
num <- c(1, 2, 3, 4, 5, 6) # 6 elemenata
int <- c(10L, 20L, 30L) # 3 elementa
text <- c("Geo", "Info") # 2 elementa
logic <- c(TRUE, FALSE, TRUE) # 3 elementa
# Kreiranje Data Frame-a
dataframe <- data.frame(numeric = num,
integer = int,
tekst = text,
logic = logic)Strukture podataka u R-u
str() 🔍Komanda str() omogućava brz pregled strukture R objekta.
Koristi se za ispitivanje tipova podataka, broja elemenata i organizacije objekta.
str()
U R-u postoji šest različitih načina izdvajanja vrednosti podataka,
a koriste se tri operatora za selektovanje elemenata:
[[ – koristi se za liste i data frame-ove (vraća direktnu vrednost)[ – koristi se za vektore, matrice i data frame-ove (vraća podskup)$ – koristi se za izdvajanje kolona iz Data Frame-a i listi po nazivuU R-u možemo izdvajati vrednosti iz vektora koristeći pozitivne celobrojne indekse.
Indeksiranje uvek počinje od 1 (za razliku od nekih drugih jezika kao što su Python i C, gde kreće od 0).
[1] 3.3 2.1
[1] 2.1 3.3 4.2 5.4
[1] 2.1 2.1
[1] 4.2 4.2
U R-u možemo izdvajati vrednosti vektora koristeći negativne celobrojne indekse i logičke vrednosti.
Kada koristimo negativne indekse, iz vektora isključujemo određene elemente, dok ostale zadržavamo.
[1] 4.2 3.3 5.4
[1] 4.2 5.4
[1] 2.1 4.2
[1] 4.2 3.3 5.4
Izdvajanje vrednosti vektora i data frame-a celobrojnim vektorima
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
🔹 Napomena:
- mtcars[1:10, ] selektuje prvih 10 redova, dok se sve kolone zadržavaju.
- Ako želimo samo određene kolone, dodajemo selektor za kolone (mtcars[1:10, c("mpg", "hp")]).
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
🔹 Napomena:
- head(mtcars) prikazuje prvih 6 redova bez potrebe za ručnim indeksiranjem.
- Možemo koristiti head(mtcars, n = 10) za prikaz prvih 10 redova.
[1] "numeric"
[1] "data.frame"
🔹 Napomena:
- drop = FALSE osigurava da se kolona zadrži kao Data Frame, umesto da se pretvori u vektor.
- Ovo je važno kada radimo sa više podataka i zadržavamo format tabele.
$
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
Min. 1st Qu. Median Mean 3rd Qu. Max.
52.0 96.5 123.0 146.7 180.0 335.0
🔹 Napomena:
- $ operator omogućava lako selektovanje kolone po imenu (mtcars$hp).
- summary(mtcars$hp) daje osnovnu deskriptivnu statistiku te kolone.
| Metoda | Koristi se za | Vraća |
|---|---|---|
df[row, col] |
Fleksibilna selekcija po redovima i kolonama |
Data Frame ili vektor
|
df$colname |
Izdvajanje kolone po imenu | Vektor |
df[, col, drop=FALSE] |
Zadržavanje Data Frame strukture pri selekciji kolone | Data Frame |
✅ df[row, col] – za izdvajanje specifičnih redova i kolona
✅ df$colname – za brzi pristup kolonama kao vektorima
✅ drop=FALSE – za očuvanje strukture Data Frame-a pri selekciji kolone
Selekcija podataka je osnovni alat za manipulaciju i analizu podataka u R-u.
Kombinovanjem različitih metoda možemo efikasno izdvajati i transformisati podatke! 🚀
U R-u liste mogu sadržavati različite tipove podataka, pa postoji nekoliko načina za izdvajanje njihovih elemenata.
1️⃣ lst[1] – vraća podlistu (uvek kao lista).
2️⃣ lst$numbers – selektuje element po imenu (često kao vektor).
3️⃣ lst[[1]] – direktno izdvaja prvi element liste u njegovom originalnom tipu.
Izdvajanje vrednosti liste
U R-u možemo menjati pojedinačne ili više vrednosti u vektoru pomoću indeksiranja.
U R-u možemo dodavati, menjati i reorganizovati kolone unutar Data Frame-a.
Data Frame-a# Učitavanje ugrađenog Data Frame-a
data(mtcars)
# Čuvanje originalnih imena kolona
mtcars_names <- names(mtcars)
# Dodavanje nove kolone sa imenima redova
mtcars$name <- row.names(mtcars)
# Prikaz atributa Data Frame-a
attributes(mtcars)
# Uklanjanje imena redova (postavljanje na NULL)
row.names(mtcars) <- NULL
# Dodavanje ID kolone (indeksiranje redova)
mtcars$id <- 1:nrow(mtcars)
# Reorganizacija kolona (ID i ime dolaze na početak)
mtcars <- mtcars[, c("id", "name", mtcars_names)]
# Kreiranje logičkog vektora koji označava automobile sa 4 cilindra
four_cyl <- ifelse(mtcars$cyl == 4, TRUE, FALSE)Kontrola toka u R-u omogućava uslovno izvršavanje koda pomoću if, else if i else blokova.
else if
else if
Petlje omogućavaju ponavljanje izvršavanja koda dok god su zadovoljeni određeni uslovi.
✅ for petlja se koristi kada znamo koliko puta treba ponoviti kod.
✅ while petlja se koristi kada želimo ponavljanje dok je uslov tačan.
✅ Obe petlje omogućavaju automatizaciju ponavljajućih zadataka.
for i while petlje[1] 14
[1] "Iteracija broj: 1 y = 4"
[1] "Iteracija broj: 2 y = 8"
[1] "Iteracija broj: 3 y = 12"
[1] "Iteracija broj: 4 y = 16"
[1] "Iteracija broj: 5 y = 20"
Radni direktorijum (working directory) je folder u kojem R traži i čuva fajlove.
Postavljanje tačnog radnog direktorijuma je ključno za učitavanje i čuvanje podataka.
✅ getwd() – prikazuje trenutni radni direktorijum.
✅ setwd() – omogućava postavljanje novog direktorijuma.
✅ list.files() – prikazuje sve fajlove u direktorijumu.
✅ Svi fajlovi bez pune putanje se traže u radnom direktorijumu.
Pravilno postavljen radni direktorijum omogućava lakši rad sa fajlovima i analizom podataka u R-u! 🚀
here – Rad sa putanjama fajlovaPaket here omogućava jednostavno i dinamičko upravljanje putanjama fajlova u R projektima.
Koristan je jer eliminiše potrebu za ručno podešavanje radnog direktorijuma (setwd()).
✅ Automatski prepoznaje direktorijum R projekta
✅ Omogućava lakše organizovanje fajlova u potprojekte (data/, results/)
✅ Radi bez potrebe za setwd()
here
U R-u možemo učitavati podatke iz različitih formata kao što su CSV, Excel, RDS, JSON, i drugi.
[1] "C:/Users/user/Documents/GitHub/AnalizaProstornoVremenskihPodataka/00_R/data/Studenti_IG2_20_21.txt"
Broj Prezime Ime Br..Ind. God.upisa prvi_kol drugi_kol
1 1 Aleksic Andrijana 1008 18 40 NA
2 2 Andrijevic Katarina 1036 17 10 NA
3 3 Ackovic Mina 1018 18 100 51
4 4 Babic Milica 1032 17 NA NA
5 5 Bastovanovic Iva 1010 18 20 60
6 6 Biberovic Anja 1007 18 100 80
jun_prvi_kol jun_drugi_kol jun_ceo_ispit
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 NA NA NA
5 85 NA NA
6 NA NA NA
[1] "C:/Users/user/Documents/GitHub/AnalizaProstornoVremenskihPodataka/00_R/data/Studenti_IG2_20_21.txt"
Broj Prezime Ime Br..Ind. God.upisa prvi_kol drugi_kol
1 1 Aleksic Andrijana 1008 18 40 NA
2 2 Andrijevic Katarina 1036 17 10 NA
3 3 Ackovic Mina 1018 18 100 51
4 4 Babic Milica 1032 17 NA NA
5 5 Bastovanovic Iva 1010 18 20 60
6 6 Biberovic Anja 1007 18 100 80
jun_prvi_kol jun_drugi_kol jun_ceo_ispit
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 NA NA NA
5 85 NA NA
6 NA NA NA
U R-u postoji više funkcija za čitanje i pisanje podataka iz fajlova i obratno kao što su:
readLines, writeLines;
scan, write;
read.csv, write.csv;
read.csv2, write.csv2;
read.delim, write.delim;
read.delim2, write.delim2;
R Core Team. (2023). An Introduction to R. Retrieved from https://cran.r-project.org/doc/manuals/R-intro.pdf
R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. Retrieved from https://www.R-project.org/
Wickham, H. (2023) R for Data Science (2e). https://r4ds.hadley.nz/