You are on page 1of 33

 R je nastao kao varijanta S jezika:

1988 - S: RA Becker, JM Chambers, A Wilks

 R: Ross Ihaka, Robert Gentleman - Dep. of


Statistics of U of Auckland, New Zealand 1990s.
 http://www.r-project.org

 P. Kuhnert & B. Venables, An Introduction to R:


Software for Statistical Modeling & Computing
 J.H. Maindonald, Using R for Data Analysis and
Graphics
 B. Muenchen, R for SAS and SPSS Users
 W.J. Owen, The R Guide
 D. Rossiter, Introduction to the R Project for
Statistical Computing for Use at the ITC
 W.N. Venebles & D. M. Smith, An Introduction to
R
 Paul Geissler's excellent R tutorial
 Excellent Tutorials by David Rossitier
 Excellent tutorial an nearly every aspect of R
(c/o Rob Kabacoff) MOST of these notes follow
this web page format
 Introduction to R by Vincent Zoonekynd
 R Cookbook
 Data Manipulation Reference
 KickStart
 Hints on plotting data in R
 Regression and ANOVA
 Appendices to Fox Book on Regression
 JGR a Java-based GUI for R
[Mac|Windows|Linux]
 A Handbook of Statistical Analyses Using R(Brian
S. Everitt and Torsten Hothorn)
 getwd() #vraća trenutni radni direktorijum
 setwd() #postavlja radni direktorijum
 ls(), ls.str(), ls(pat=pattern_string) #vraća
spisak objekata kreiranih u trenutnom radnom
direktorijumu
 history() #vraća 25 poslednjih komandi
 history(max.show=Inf) #vraća sve prethodne
komande
 save.image() #snima trenutnu sesiju u .RData
fajl
 save(object list,file="myfile.RData") #snima
objekte iz liste u .RData fajl
 load("myfile.RData") #ucitava objekte iz fajla u
sesiju
Prilikom navođenja adresa na disku ne
koristiti standardni zapis
c:\mydocuments\myfile.txt
već
c:\\my documents\\myfile.txt
c:/mydocuments/myfile.txt
 help() #poziva on-line uputstvo
 help.start() #poziva početnu stranu uputstva
 help.search(string) #
 ?ime_funkcije() #poziva uputstvo za
odgovarajuću funkciju
apropos("foo") # list all function containing
string foo
example(foo) # show an example of function
foo
 q() #izlaz iz programa
 Razlikuju se mala i velika slova (case
sensitive)
 Za kreiranje imena koriste se
alfanumerički znakovi i “.” i “_”
 Ime mora da počne slovom ili “.”
 Iskaz je komanda koja izaziva neki događaj.
 Izraz je iskaz koji proizvodi neku vrednost.
 Iskazi se odvajaju simbolom “;” ili
prelaskom u novi red.
 Iskazi se mogu grupisati u složeniji iskaz
pomoću zagrada “{” и “}”.
 Prelazak u novi red ne označava obavezno
kraj iskaza. U slučaju prelaska u novi red
nakon nepotpunog iskaza, nastavlja se sa
unosom do kompletiranja.
Objekti se kreiraju dodeljivanjem vrednosti
 n = 15
 n <- 15
 15 -> n
 z=3+2i
 a=“Prirodno”
 b <- TRUE
 c <- F
 d=c(’a’,’b’,’c’)
Funkcija rm() briše objekte koji su navedeni
kao argumenti
 rm(x,y) #briše objekte x i y
 rm(list=ls()) #briše sve objekte definisane u
radnom okruženju
 rm(list=ls(pat=pattern_string)) #briše sve
objekte sa zadatom paternom
Osim imenom i vrednostima, objekti se mogu
karakterisati atributima. Dva osnovna
atributa su mod i dužina.
Neki od osnovnih modova su numeric,
charcter, complex, logical, function,
expresion. Dužina objekta predstavlja broj
elemenata objekta (u smislu niza).
Funkcije kojima se može dobiti mod i dužina
objekta su
mode(x)
length(x)
 Ukoliko neki objekat nema vrednost,
umesto nje se prikazuje oznaka NA (not
available).
 Oznaka za beskonačnu vrednost je Inf.
 Oznaka za vrednosti numeričkih izraza koji
se ne mogu izračunati (nedefinisani su) je
NaN (not a number).
U R-u postoje sledeći osnovni tipovi
objekata
 vector
 factor
 array
 matrix
 vremenski niz
 data frame
 list
 Vektor je jednodimenzionalna promenljiva čije su
vrednosti istog moda
 Faktor je kategorijska promenljiva
 Niz je k dimenzionalna tabela podataka vrednosti
istog moda
 Matrica je specijalan slučaj niza za k = 2
 Data frame je tabela sastavljena od jednog ili više
vektora ili faktora iste dužine- Podaci mogu pripadati
različitim modovima
 Vremenski niz (u užem smislu) je skup podataka
prikupljenih tokom određenog vremenskog perioda sa
nekim korakom (koji ne mora da bude konstantatan).
 Lista je struktura koja sadrži objekte različitih
tipova, uključujući i liste
 Svi tipovi objekata sem vektora imaju atribut
dim – dimenzija.
 Vremanska serija ima dodatne atribute kao
što su učestanost i datum, tj. vreme
x <- 1:10 #opseg celih brojeva
 x <- 2*(1:10)-1 #funkcija opsega celih brojeva
 x <- seq(start, end, step)
 x <- seq(length=l, from=f, to=t)
 x <- c(x1,x2,...,xn)
 x <- scan() #unos sa tastature
 x <- rep(x, times = t, length.out = l, each = k)
#svaki element vektora se ispisuje k puta i to
se ponavlja t puta, dok se ne dostigne dužina l
 x <- gl(k, n) #generiše k nivoa faktora sa po n
ponavljanja
 read.table(file, header = FALSE, sep = “\t",
dec = ". ",...)

 scan(file = "", what = double(0), nmax = -1, n


= -1, sep = "“, quote = if (sep=="\n") "" else
"'\"", dec = ".",...)
 write.table(x, file = "", append = FALSE, sep =
" “,eol = "\n", na = "NA", dec = ".",...)
 vector(mode, length) #generiše vektor čiji će
podaci biti odgovarajućeg moda (0,FALSE,””)
i zadate dužine
 numeric(length), logical(length),
character(length)

 factor(x,levels ,labels,...) #generiše faktor


sa vrednostima vektora x sa odgovarajućim
nivoima i oznakama vrednosti
 matrix(data, nrow, ncol, byrow, dimnames)
#generiše matricu sa nrow redova i ncol
kolona ređajući elemente vektora data po
redovima ili kolonama
 ts(data, start, end, frequency, ...) #generiše
vremenski niz od elementata vektora data,
pridružujući svakoj vrednosti vremenski
trenutke od start do end sa po frequency
merenja po vremenskoj jedinici
 data.frame(a, b, c,...) # generiše data frame
od vektora a,b,c... koji su ili iste dužine ili se
kraći ciklično ponavljaju do maksimalne
dužine
 list(A=x, B=y, C=z) #generiše listu koja će
imati tri elementa A,B,C sa odgovarajućim
vrednostima
 as.numeric()
 as.logical()
 as.character()
Aritmetčki Operatori Logički
operatori poređenja operatori
+ < !
- > &
* <= &&
/ >= |
%% == ||
%/% != xor( , )
^
 paste(x,y,..., sep) #konkatenacija odgovarajućih
elemenata vektora x,y,... odvojenih separatorom
 x[k] #k-ti element niza x
 x[i,j] #element matrice x iz i-te vrste i j-te
kolone
 x[i,] #i-ta vrsta u obliku vektora
 x[,j] #j-ta kolona u obliku vektora
 x[i, , drop=F] #i-ta vrsta u obliku matrice
 x[“a”,”b”] #element matrice iz vrste “a” i
kolone “b” (ako su kolone imenovane)
 l[[j]] #j-ti objekat liste l
 l[[j]][i] #i-ti element j-tog objekata liste l

 l$A #objekat “A” liste l


 d.f$A #vektor (kolona) “A” data framea
 filtriranjepo poziciji (indeksu)
x[uslov(1:n)]

 filtriranje po vrednosti
x[uslov(x)]

 isključivanje elemenata iz niza


x[c(-i1,-i2,...)]
 matrix(data, nrow, ncol, byrow, dimnames)
#generiše matricu sa nrow redova i ncol
kolona ređajući elemente vektora data po
redovima ili kolonama
 dim(data) <- c(nrow, ncol) #generiše matricu
sa nrow redova i ncol kolona ređajući
elemente vektora data kolonama
 cbind(a, b, …) #generiše matricu čije su
kolone a,b,...
 rbind(a, b, …) #generiše matricu čije su vrste
a,b,...
 x+y #sabiranje matrica
 x-y #oduzimanje matrica
 x %*% y #množenje matrica
 t(x) #transponovanje matrica
 det(x) #izračunavanje determinante
 solve(x) #izračunavanje inverzne matrice
 solve(a,b) #rešava sistem ax=b
 diag(x) #izdvaja dijagonalu matrice il ikreira
matricu sa datom dijagonalom
 l=list(A=x, B=y, C=z) #generiše listu koja će
imati tri elementa A,B,C sa odgovarajućim
vrednostima

pristupanje i-tom elementu liste


 l[[i]]

ili, ukoliko su elementi liste imenovani


 l$ime_elementa
x <- list(ime="Petar”, godina=20,
ocene=c(9,10,10))

 x$ime
 x$ocena[2]
 factor(x, levels ,labels,...) #generiše faktor
sa vrednostima vektora x sa odgovarajućim
nivoima i oznakama vrednosti
 gl(n, k, labels, ordered) #generiše faktor sa n
nivoa koji se ponavljau po k puta
 table(x) #izračunava učestanosti nivoa
 levels(x) #prikazuje sve nivoe faktora
 nlevels(x) #prikazuje broj nivoa faktora

You might also like