# Uvod do R; verze 20160226 # # napoveda se vyvolava prikazem help a nebo otaznikem spolecne s klicovym slovem (napr. prikaz setwd): help(setwd) a nebo ?setwd # vymazani promennych rm(list = ls()) # pracovni adresar work_dir <- setwd('C:/Users/Gelda/Desktop/cviceni') # pripojeni pres sitovy disk ve skole work_dir <- setwd('\\\\nfs3.ucn.muni.cz/profiles/431335/Documents/Vyuka/ZFG02') # vypis souboru v pracovnim adresari list.files(work_dir) # jmeno souboru, ktery chceme nacist file_name <- 'brno_t.csv' # nacteni souboru a nastaveni jeho vlastnosti dataset_brno_t <- read.table(file_name, header = T, dec = '.', sep = ';') names(dataset_brno_t) # zakladni prace s datasetem; osobne radeji pracuji se sloupcovym zapisem, viz nize dataset_brno_t$JAN[1] # vypis radku pres promennou nazev (names) dataset_brno_t[1,2] # sloupcovy zapis (poradi daneho radku a sloupce v datasetu) # zapis dataset_brno_t$JAN odpovida zapisu dataset_brno_t[,2]; pro kontrolu dataset_brno_t$JAN dataset_brno_t[,2] # zakladni vlastnosti souboru; jejich ukladani do promennych, zakladni vypocty nrow(dataset_brno_t) ncol(dataset_brno_t) summary(dataset_brno_t) mean(dataset_brno_t[,2]) sd(dataset_brno_t[,2]) pocet_radku <- nrow(dataset_brno_t) # kvantily quantile(dataset_brno_t[,2]) quantile(dataset_brno_t[,2], c(.25, .75)) # tahani dat z vypisu prvni_kvantil <- quantile(dataset_brno_t[,2])[[2]] prvni_kvantil # razeni sloupce od nejmensiho sort(dataset_brno_t[,2], decreasing = F) # histogram a boxplot hist(dataset_brno_t[,2]) hist(dataset_brno_t[,2], breaks = 20) hist(dataset_brno_t[,2], breaks = 20, main = 'Histogram') hist(dataset_brno_t[,2], breaks = 20, main = 'Histogram', ylab = 'Počet', xlab = 'Teplota') hist(dataset_brno_t[,2], breaks = 20, main = 'Histogram', ylab = 'Počet', xlab = 'Teplota', col = 'blue') boxplot(dataset_brno_t[,2], main = 'Boxplot') # test normality dat shapiro.test(dataset_brno_t[,2]) # qq-plot qqnorm(dataset_brno_t[,2]) # # # # # # # # # # # # # # # # # # # # # # # # # # # # druhy dataset dataset_naoi <- read.table('NAOI.csv', header = T, dec = '.', sep = ';') names(dataset_naoi) # hledani minima roku min(dataset_naoi[,1]) # min(dataset_naoi$rok) # oprava prvniho datasetu tak, aby byl stejne 'dlouhy' jako druhy (zkraceni prvniho sloupce (JAN) podle hodnoty atributu YEAR) brno_t_short <- subset(dataset_brno_t, YEAR > 1824) # kontrola delek datasetu (nrow je pro matice, length pro vektory) nrow(brno_t_short) # length(brno_t_short[,1]) nrow(dataset_naoi) # length(dataset_naoi[,1]) # vykresleni grafu zavislosti lednovych hodnot plot(brno_t_short[,2], dataset_naoi[,2], main = 'Název grafu') plot(brno_t_short[,2], dataset_naoi[,2], main = 'Název grafu', xlab = 'Brno_t LEDEN', ylab = 'Index NAO LEDEN') # vypocet korelace cor(brno_t_short[,2], dataset_naoi[,2]) # test vyznamnosti korelace cor.test(brno_t_short[,2], dataset_naoi[,2]) # priklad promenne p-value z korelacniho testu cor.test(brno_t_short[,2], dataset_naoi[,2])$p.value # linearni regrese - pozor na poradi prvku! # spatne: lm(brno_t_short[,2] ~ dataset_naoi[,2]) # spravne: lm(dataset_naoi[,2] ~ brno_t_short[,2]) lm_leden <- lm(dataset_naoi[,2] ~ brno_t_short[,2]) summary(lm_leden) # summary(lm(dataset_naoi[,2] ~ brno_t_short[,2])) # predchozi dva prikazy dohromady # pridani regrese do obrazku abline(lm_leden) abline(lm_leden, col = 'red', lwd = 3) # # # # # # # # # # # # # # # # # # # # # # # # # # # # statisticke testy: t-test (porovnani dvou nezavislych souboru) t.test(dataset_naoi[,2], dataset_naoi[,8]) # statisticke testy: parovy t-test (porovnani dvou nezavislych souboru) t.test(dataset_naoi[,2], dataset_naoi[,8], paired = T) # statisticke testy: f-test (lisi se vyznamne variabilita hodnot indexu NAO v lednu a v cervenci?) var.test(dataset_naoi[,2], dataset_naoi[,8]) # # # # # # # # # # # # # # # # # # # # # # # # # # # # casove rady brno_t_cervenec <- ts(brno_t_short[,8], start = brno_t_short[1,1]) brno_t_cervenec # vsimnete si zmenene struktury vypisu! # graf cervence plot.ts(brno_t_cervenec) plot.ts(brno_t_cervenec, main = 'Časová řada', ylab = 'T [°C]', xlab = 'Rok', col = 'darkgrey') # nizkofrekvencni filtr filtr_cervenec <- ksmooth(brno_t_short[,1], brno_t_short[,8], 'normal', bandwidth = 12) lines(filtr_cervenec, col = 'darkorange', lwd = 3) # vypoctene honoty filtru (cely cervenec, pouze prvni rok a prvnich deset let) filtr_cervenec[2] filtr_cervenec[[2]][1] filtr_cervenec[[2]][1:10] # autokorelační funkce acf(brno_t_cervenec)