######CVICENIE 3: PRACA S DATOVYMI SUBORMI######################### ## ***** import dat z textoveho suboru ***** ## # zakladne funkcie na nacitanie dat z externeho .txt suboru su scan() - nacita vektor a read.table() - nacita datovy ramec. r <- scan() #skopiruje stlpec z excelu # Funkcia read.table() ma vela parametrov, ktore mozu ulahcit nacitavanie dat bez potreby ich upravovania. args(read.table) ## header - identifikator, ci data obsahuju hlavicku s nazvami stlpcov alebo nie (TRUE/FALSE) ## sep - identifikacia symbolu pouziteho na oddelenie jednotlivych hodnot v subore (medzera, ciarka...) ## dec - identifikacia symbolu pouziteho ako desatinna ciarka (.,) ## row.names, col.names - identifikacia toho, ci a kde su v subore nazvy riadkov/stlpcov, pripadne ich priame definovanie ## na.strings - identifikacia symbolu pouziteho ako chybajuca hodnota (NA...) ## nrows - pocet riadkov, ktore maju byt nacitane (vhodne pri velmi rozsiahlych datovych suborov, kde je postacujuca urcita vzorka) ## skip - pocet riadkov od zaciatku suboru, ktore maju byt preskocene pri nacitavani dat ## comment.char - identifikacia symbolu pouziteho ako komentar (#%) ## ***** import dat z csv suboru ***** ## # na import dat z csv suboru sluzia funkcie read.csv(), resp. read.csv2(). ## ***** praca s datami ***** ## # Nacitajte subor cherry.csv pomocou prikazu read.csv do premennej cherry1. cherry1 <- read.csv("http://www.iam.fmph.uniba.sk/ospm/Filova/cherry.csv", sep=",") # Preskumajte strukturu datoveho suboru. head(cherry1) head(cherry1, n=10) names(cherry1) summary(cherry1) # Jednotlive premenne v datovom subore Diam cherry1$Diam mean(cherry1$Diam) hist(cherry1$Diam) # Funkcia 'with' a zakladne statisticke funkcie with(cherry1, hist(Height)) with(cherry1, mean(Height)) with(cherry1, median(Volume)) with(cherry1, sd(Volume)) # Funkcia 'attach' attach(cherry1) Diam mean(Diam) plot(Diam, Volume) detach(cherry1) # Transformacia premennych v datovom subore cherry2 <- transform(cherry1, logVol=log(Volume), logDiam=log(Diam)) cherry2 # Podmnozina datoveho suboru cherry1[3, ] cherry1[3:5, ] cherry1[-c(2,4), ] subset(cherry1, Height>=70) subset(cherry1, Height==80) subset(cherry1, Height==80, select=c(Diam, Volume)) # Pridavanie novych dat do suboru new <- data.frame(Diam=c(11.5, 17.0), Height=c(71, 75), Volume=c(22, 24)) cherry1 <- rbind(cherry1, new) # Pridavanie novych premennych do suboru Rain <- rnorm(n=33, mean=50, sd=10) Rain cherry1 <- cbind(cherry1, Rain) cherry1 # Zakladne graficke prikazy plot(cherry1) attach(cherry1) plot(Diam, Volume) plot(log(Diam), log(Volume)) plot(Height) hist(Volume) boxplot(Volume) detach(cherry1) boxplot(cherry1) boxplot(cherry1[ ,2:3]) # Ukladanie obrazkov # Export datoveho suboru write.table(cherry1,file="cherry.xls",sep="\t") iris<-read.table("http://www.iam.fmph.uniba.sk/ospm/Filova/iris.xls",sep="\t",header=TRUE) # Domaca uloha # Nacitajte do R datovy subor http://www.iam.fmph.uniba.sk/ospm/Filova/wais.dat # Data popisuju vysledky z podtestov IQ testov u dospelych (stlpce 2-6) v zavisloti od zdravotneho stavu (stlpec 1; 1:zdravy jedinec, 2: jedinec s diagnostikovanou senilitou) # Nakreslite boxploty a histogramy vysledkov pre jednotlive skupiny, obrazky ulozte vo formate .eps # Vypocitajte zakladne charakteristiky oboch skupin