################################# ### TRECI CAS - BAZE PODATAKA ### ################################# ################################# ## DATA FRAMES - baze podataka ## ################################# # data matrix, data set, matrica podataka # data frame je lista vektora iste duzine, tako da su el. sa istim indeksom povezani # Lici na matricu, gde su u jednoj vrsti podaci o jednom elementu uzorka (subjektu u eksperimentu) # Imena vrsta su jedinstvena i po tome se razlikuju elementi. # Kreiranje data framea iz postojecih podataka, npr. dva vektora: brojevi<-1:12 slova<-letters[1:12] d<-data.frame(brojevi,slova) d # Pristupanje elementima preko $ d$brojevi d$slova # Mozemo kolonama dodeliti imena razlicita od ovih, pri kreiranju baze d<-data.frame(br=brojevi,sl=slova) d # Mozemo ih i naknadno izmeniti names(d)<-c("kol1","kol2") d d$kol1 d$kol2 # Funkcija ATTACH primenjena na bazu podataka # Elementima mozemo da pristupamo bez navodjenja imena baze attach(d) kol1 kol2 # Za ponistavanje f-je ATTACH koristi se f-ja DETACH: detach(d) ## INDEXIRANJE DATA FRAME-ova # Iz baze podataka mozemo izvuci podatke preko $ ili preko matricne notacije d[i,j]: d d[1,2] # ili d$kol2[1] d[1,] #vraca prvu vrstu d[,1] # vraca prvu kolonu d[1] # vraca data frame koji sadzi prvu kolonu d # Uslovna selekcija u data frame-u # Baza podatak koja sadrzi vrednost <10 u prvoj koloni d[d$kol1<10,] # + parne vrednosti d[d$kol1<10 & d$kol1%%2==0,] # Dodavanje vektora u data frame: # Postoje ugradjene baze u R-u, npr. data set SLEEP data(sleep) #ucitava bazu sleep u tekuci session u R-u sleep #ispisuje # Dodajemo kolonu brojeva 20,19,18,...1 cbind(sleep,seq(20,1,-1)) # isto tako mozemo dodati i vrstu rbind(sleep,c(2.0,1,1)) # Hocemo da neku od kolona transformisemo, f-ja TRANSFORM # U novoj koloni abs.extra da nam ispisuje aps. vrednosti kolone extra transform(sleep,abs.extra=abs(extra)) # Jos jedna ugradjena baza - InsectSprays data(InsectSprays) InsectSprays # Za prikaz uopstenih podataka o bazi - f-ja SUMMARY summary(InsectSprays) # Ispis prvih 6 redova (koristi se za vece baze) head(InsectSprays) # Primetimo da ne moramo da navodimo InsectSprays$spray,vec samo ime kolone