### 2 BODOVE A INTERVALOVE ROZDELENI CETNOSTI
# 2.1
data <- read.delim('TO-DO', sep = '\t', dec = '.')
head(data, n = 'TO-DO')
summary(data)           
sum(is.na(data))
data <- 'TO-DO'(data)   # vynechame zaznamy s NA hodnotou
summary(data)
dim(data)

# 2.2
str(data)
data$weight.K <- as.factor(data$weight.K)   # zmenime datovy typ na factor
str(data)
levels(data$weight.K) <- c('nizka', 'norma', 'vysoka')
str(data)

data$edu.M <- 'TO-DO'(data$edu.M)
str(data)
'TO-DO'(data$edu.M) <- c('ZS', 'SS', 'SSm', 'VS')
#kontrola struktury upravenych dat
'TO-DO'

# 2.3
# variacni rada pro znak X - vzdelani matky
nl <- sum(data$edu.M == 'ZS')
n2 <- sum(data$edu.M == 'TO-DO')
n3 <- sum(data$edu.M == 'TO-DO')
n4 <- sum(data$edu.M == 'TO-DO')
nj <- c(nl, n2, n3, n4)
n <- 'TO-DO'

# alternativni zpusob, kdy ziskam rovnou vsechny hodnoty:
table(data$edu.M)
nj <- as.vector(table(data$edu.M))

pj <- nj/n
Nj <- cumsum(nj)
Fj <- 'TO-DO'
(var.rada.edu <- data.frame(nj = nj, pj = pj, Nj = Nj, Fj = Fj,
                            row.names = levels(data$edu.M)))
(var.rada.edu <- round(var.rada.edu, digits = 4))

# variacni rada pro znak Y - hmotnost novorozence
'TO-DO'

# 2.4
# sloupcove grafy
barplot(table('TO-DO'), xlab = 'nejvyssi dosazena uroven vzdelani', ylab = 'absolutni cetnost', 
        border = 'TO-DO', col = c('TO-DO'), density = 30) # pomoci density menime hustotu srafovani


source('TO-DO') # cesta ke zdrojovemu skriptu funkci
rel.barplot(var.rada.edu$nj, col = c('yellow', 'orange', 'red', 'black'), names = c('ZS', 'SS', 'SSm', 'VS'), axes = T,
            density = 30, xlim = c(0.2, 1.8), xlab = 'vzdelani matky')

'TO-DO'
# jako samostatne cviceni si zkuste vyrobit oba grafy pro hmotnost novorozence
# vyzkousejte ruzna nastaveni argumentu funkce plot (barvy, srafovani apod.)

# 2.5
k.table <- table(data$edu.M, data$weight.K)
k.table.2 <- cbind(k.table, suma = rowSums(k.table))          # prip. apply(k.table, 1, sum)
(k.table.abs <- rbind(k.table.2, suma = colSums(k.table.2)))  # prip. apply(k.table.2, 2, sum)

(k.table.rel <- round(k.table.abs / 'TO-DO', digits = 4))

# 2.6
k.table.rel.r <- prop.table(k.table, margin = 1)
(k.table.rel.r <- round(k.table.rel.r, digits = 4))
rowSums(k.table.rel.r) # kontrola - radkove sumy musi byt 1
(k.table.rel.c <- round(prop.table(k.table, margin = 2), digits = 4))



## 2.2 JEDNOROZMERNE INTERVALOVE ROZLOZENI CETNOSTI
# 2.7
data <- 'TO-DO'
'TO-DO' # struktura dat, zjisteni a odstraneni NA hodnot

# 2.8
data.m <- data[data$sex == 'm', ] # pouze muzi
length(data.m$skull.B) # pocet pozorovani
range(data.m$skull.B) # rozsah promenne
summary(data.m) # jednodussi cesta, jak zjistit oboji jednim prikazem


r <- round(1 + 'TO-DO' * log10(nrow(data.m))) # Sturges. pravidlo

( d <- ceiling ((max(data.m$skull.B) - min(data.m$skull.B)) / r ) ) # vypocet opt. sirky intervalu
# ceiling zaokrouhluje na nejblizsi vyssi cele cislo

breaks <- seq(from = 123, to = 150, by = d)
hist(data.m$skull.B, breaks = breaks, ylim = c(0, 50), density = 30, col = 'blue', main = '',
     xlab = 'nejvetsi sirka mozkovny (mm) - muzi', ylab = 'absolutni cetnosti')
# referencni cary lze pridat pomoci fce abline - viz sbirka
# nebo pouzit ggplot, kde jsou v ramci urcitych sablon automaticky

boxplot(data.m$skull.B, horizontal = TRUE, border = 'blue', col = 'aliceblue', 
        xlab = 'nejvetsi sirka mozkovny (mm) - muzi')

'TO-DO'
# samostatne si zkuste vypracovat histogram a boxplot pro delku mozkovny a potom totez pro zeny
