# preberi podatke iz csv datoteke in jih shrani v spremenljivko podatki
podatki <- read.csv("./Maraton.csv", 
                    header = TRUE, 
                    sep = ";",
                    dec = ",")
head(podatki)
##   ID Teža Višina Tlak Utrip Hemoglobin Hematokrit Holesterol Glukoza Spol
## 1  1   72  179.0  105    64        160         50        4.9     4.7    1
## 2  2   68  178.0  105    60        158         51        4.8     4.9    0
## 3  3   64  174.0  109    54        155         51        4.5     7.0    0
## 4  4   63  174.0  112    54        153         58        8.0     7.2    0
## 5  5   61  173.5  100    53        152         59        4.6     6.7    0
## 6  6   60  173.0   99    53        158         49        3.9     6.0    0
# oceni aritmetično sredino in standardni odklon za Višino.
paste("Aritmetična sredina višine:", round(mean(podatki$Višina), 2), "cm.")
## [1] "Aritmetična sredina višine: 176.96 cm."
paste("Standardni odklon višine:", round(sd(podatki$Višina), 2), "cm.")
## [1] "Standardni odklon višine: 5.85 cm."
# add blank line
cat("\n")
# aritmetična sredina višine glede na spol
paste("Aritmetična sredina višine 0:", round(mean(podatki$Višina[podatki$Spol == 0]), 2), "cm.")
## [1] "Aritmetična sredina višine 0: 172.75 cm."
paste("Aritmetična sredina višine 1:", round(mean(podatki$Višina[podatki$Spol == 1]), 2), "cm.")
## [1] "Aritmetična sredina višine 1: 179.76 cm."
# spremenljivko spol spremeni v faktor"
podatki$SpolFaktor <- factor(podatki$Spol,
                             levels = c(0, 1),
                             labels = c("Ženska", "Moški"))
# za vsak spol posebaj izračunaj opisno statistiko za Glukoza
tapply(podatki$Glukoza, podatki$SpolFaktor, summary)
## $Ženska
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.600   5.300   5.800   5.957   6.925   7.200 
## 
## $Moški
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.800   4.000   4.600   4.536   4.700   6.000
library(psych)
describeBy(podatki$Glukoza, podatki$SpolFaktor)
## 
##  Descriptive statistics by group 
## group: Ženska
##    vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
## X1    1 14 5.96 0.93    5.8    5.97 1.33 4.6 7.2   2.6 0.12    -1.62 0.25
## ------------------------------------------------------------ 
## group: Moški
##    vars  n mean  sd median trimmed  mad min max range skew kurtosis   se
## X1    1 21 4.54 0.7    4.6    4.45 0.74 3.8   6   2.2 0.97    -0.13 0.15
t.test(podatki$Glukoza[podatki$SpolFaktor == "Ženska"],
       mu = 6)
## 
##  One Sample t-test
## 
## data:  podatki$Glukoza[podatki$SpolFaktor == "Ženska"]
## t = -0.17296, df = 13, p-value = 0.8653
## alternative hypothesis: true mean is not equal to 6
## 95 percent confidence interval:
##  5.421837 6.492449
## sample estimates:
## mean of x 
##  5.957143
# s stat.desc opiši spremeljivke, razen ID, Spol in SpolFaktor.
library(pastecs)
options(scipen = 999)
stat.desc(podatki[ , c(-1, -10, -11)])
##                      Teža        Višina          Tlak         Utrip
## nbr.val        35.0000000   35.00000000   35.00000000   35.00000000
## nbr.null        0.0000000    0.00000000    0.00000000    0.00000000
## nbr.na          0.0000000    0.00000000    0.00000000    0.00000000
## min            55.0000000  166.00000000   90.00000000   49.00000000
## max            81.0000000  189.00000000  135.00000000   64.00000000
## range          26.0000000   23.00000000   45.00000000   15.00000000
## sum          2375.0000000 6193.50000000 3838.00000000 1967.00000000
## median         68.0000000  177.00000000  108.00000000   55.00000000
## mean           67.8571429  176.95714286  109.65714286   56.20000000
## SE.mean         1.2984431    0.98909419    1.79258175    0.67213444
## CI.mean.0.95    2.6387538    2.01008124    3.64296442    1.36594153
## var            59.0084034   34.24075630  112.46722689   15.81176471
## std.dev         7.6816927    5.85156016   10.60505667    3.97640097
## coef.var        0.1132039    0.03306767    0.09671104    0.07075447
##                 Hemoglobin    Hematokrit  Holesterol     Glukoza
## nbr.val        35.00000000   35.00000000  35.0000000  35.0000000
## nbr.null        0.00000000    0.00000000   0.0000000   0.0000000
## nbr.na          0.00000000    0.00000000   0.0000000   0.0000000
## min           143.00000000   45.00000000   3.4000000   3.8000000
## max           183.00000000   69.00000000   8.0000000   7.2000000
## range          40.00000000   24.00000000   4.6000000   3.4000000
## sum          5445.00000000 1801.00000000 167.6000000 178.6500000
## median        157.00000000   51.00000000   4.7000000   4.8000000
## mean          155.57142857   51.45714286   4.7885714   5.1042857
## SE.mean         1.44552960    0.81924628   0.1692679   0.1786783
## CI.mean.0.95    2.93766959    1.66490875   0.3439938   0.3631180
## var            73.13445378   23.49075630   1.0028067   1.1174076
## std.dev         8.55186844    4.84672635   1.0014024   1.0570750
## coef.var        0.05497069    0.09418957   0.2091234   0.2070956
# frekvenčna porazdelitev za hematokrit
hist(podatki$Hematokrit,
     main = "Frekvenčna porazdelitev za hematokrit",
     xlab = "Hematokrit",
     ylab = "Število maratonovcev",
     breaks = seq(40, 80, 2),
     col = "lightblue",
     border = "black")

# nariši isti graf v ggplot
library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
ggplot(podatki, aes(x = Hematokrit)) +
  geom_histogram(binwidth = 2, fill = "lightblue", color = "black") +
  scale_x_continuous(limits = c(40,80), breaks = seq(40, 80, 2)) +
  labs(title = "Frekvenčna porazdelitev za hematokrit",
       x = "Hematokrit",
       y = "Število maratonovcev")+
  theme_minimal()
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_bar()`).

# graf kvantilov za glukozo ločeno po spolu
boxplot(podatki$Glukoza ~ podatki$SpolFaktor,
        main = "Graf kvantilov za glukozo ločeno po spolu",
        xlab = "Spol",
        ylab = "Glukoza",
        col = c("pink", "lightblue"),
        border = "black")

# naredi isti graf v ggplot
ggplot(podatki, aes(x = SpolFaktor, y = Glukoza, fill = SpolFaktor)) +
  geom_boxplot() +
  # barva za ženske naj bo pink in za moške naj bo lightblue
  scale_fill_manual(values = c("pink", "lightblue")) +
  labs(title = "Graf kvantilov za glukozo ločeno po spolu",
       x = "Spol",
       y = "Glukoza") +
  theme_minimal()

#mediana ženske glukoze
paste("Mediana ženske glukoze:", median(podatki$Glukoza[podatki$SpolFaktor == "Ženska"]))
## [1] "Mediana ženske glukoze: 5.8"