############################################################### ### PRVI CAS - OSNOVNE FUNKCIJE, PROMENLJIVE, VEKTORI U R-U ### ############################################################### # racunanje izraza: 4+4 (2*2)+1 5/0 # neke ugradjene funkcije: exp(23) log(2) # osnova e log10(100) # osnova 10 sqrt(25) sin(pi) cos(2*pi) tan(pi/3) # ako nas zanima vise o nekoj funkciji: help(cos) # ili ?cos example(exp) # sve posle '#' do kraja reda je KOMENTAR ################# ## PROMENLJIVE ## ################# # podaci se cuvaju u promenljivim # osnovni tipovi podataka su: numerical, character, logical # specijani tipovi podataka su: missing values, NULL, NaN, - / + Inf # deklaracija promenljive (ne navodimo tip vec samo dodeljujemo vrednost) # ime promenljivih moze da sadrzi slova, brojeve i tacku, a bitno je da pocinje slovom # R je case sensitive, dakle X!=x # operator dodele je <- (moze i =) ## NUMERICKE PROMENLJIVE ## x<-3 # (isto sto i 3->x) # ispisivanje vrednosti: x # ovako deklarisanu promenljivu sada mozemo koristiti u izrazima x+x x+3 exp(x^2) ## PROMENLJIVE TIPA CHARACTER ## # promenljive tipa character sadrze stringove: x<-"neke reci" x ## LOGICKE PROMENLJIVE ## # Promenljive logickog tipa mogu da imaju vrednost TRUE ili FALSE (u R-u isto sto i T, F) A<-TRUE A #ili A<-T A # logicke promenljive dobijamo i kao rezultat relacijskih izraza tipa: 3<4 3!=3 # logicki operatori: <=, >=, ==, !=, <, >, & (AND), | (OR), ! (NOT) (2<4)&(3==3) # ili: x<-(2<4)&(3==3) x # Promevera tipa podataka is.numeric(x) is.character(x) is.logical(x) ############# ## VEKTORI ## ############# # nacin predstavljanja nizova u R-u # indeksiranje pocinje od 1 # Nacini zadavanja vektora: # 1. f-ja COMBINE v<-c(2,3,4,4) v # 2. zadavanjem pocetnog i krajnjeg elementa niza v<-1:30 v #3. f-ja SEQUENCE # zadajemo pocetni i krajnji element vektora # ako zelimo da se svaki sledeci element uvecava za 1 v<-seq(5,25) v # ako zelimo da korak bude razlicit od 1, navodimo korak kao treci argument # za mnoge f-je postoje opcioni argumenti, koji ako se eksplicitno ne navede u pozivu f-je, uzimaju neku default vrednost, ovde je to 1 v<-seq(5,25,5) v # ili: v<-seq(0,1,0.1) v # ako zelimo opadajuci niz: v<-seq(10,1,-1) v # Pristupanje elementima vektora v[1] # Menjanje vrednosti elementa vektora v[2]<-27 v # Dodavanje novog elementa na kraj vektora v[11] <- 0 v # Mozemo izdvojiti i podvektor navodjenjem indeksa elemenata koje izdvajamo v[1:3] # Podvektor koji sadrzi prvi i treci element v[c(1,3)] # Funkcije skalara primenjene na vektoredeluju na svaki element vektora posebno sin(v) v+1 v/2 # NAPOMENA: ':' ima veci prioritet od aritmetickih operacija n<-10 v1<-1:n-1 v1 v2<-1:(n-1) v2 # Funkcije za rad sa vektorima length(v) max(v) min(v) range(v) sort(v) #order(v) sum(v) mean(v) # uzoracka sredina var(v) # popravljena uzoracka disperzija sd(v) # standardna devijacija # Kopija vektora pomocu f-je REPLICATE rep(v) # Varijacije ove funkcije: rep(v,5) # novi vektor koji sadrzi 5 nadovezanih kopija pocetnog, isto sto i rep(v,times=5) rep(v,each=3) # kopira svaki element 3 puta uzastopno rep(v,length.out=2) #kopira prva dva elementa # NA vrednosti - not available v<-c(1,4,6,NA,23) sum(v) # Ako hocemo da funkcija ignorise NA vrednosti sum(v,na.rm=T) # Vektori stringova v<-c("aaaa","c","bbb") v sort(v) # Logicki vektori dobijaju se kao rezultat relacijskih izraza sa vektorima v<-c(2,6,3,7,8) v==1:5 # Poredi svaki element vektora sa odgovarajucim! v>3 # Poredi svaki element sa 3 # Operacije izmedju 2 vektora a<-c(1,2,3,4) b<-c(2,3,4,5) a/b ## GRAFICKO PRIKAZIVANJE VEKTORA ## barplot(v) # Crtanje grafika zavisnosti vektora pomocu funkcije plot # a je na x-osi, b je na y-osi plot(a,b) # obrnute ose plot(b,a)