<table width = 900 border = 0><tr><td>
# <b>NMST539 | Cvičenie 1</b>

## <b>Vizualizácia mnohorozmerných dat v programe R</b>
### <font color = "#880000"><b>LS 2020/2021 |  02/03/21 | (online výuka)</b></font>
###### <a href = "cvicenie2021_1.Rmd">zdrojový Rmd súbor (kódovanie UTF8)</a>

**************

Cieľom prvého cvičenia z predmetu NMST539 je oboznámiť sa s niektorými grafickými nástrojmi v programe R (Development Core Team), ktoré 
sú užitočné pri vyzualizácii (mnohorozmerných) dátovych súborov. Pre aktívne fungovanie vrámci cvičenia je nutné mať nainštalovaný program R (a príslušné knižnice) na notebooku/počítači, s ktorým budete v priebehu semestra pracovať.  

Program R (dostupný pod GNU GPL licenciou) je k dispozícii k stiahnutiu (free of charge) na adrese 

<a href = "https://www.r-project.org">https://www.r-project.org</a>

K dispozícii sú distribúcie s priamou podporou pre OS Windows, Linux, aj Macintosh. 

Základnú  inštaláciu programu R je možne jednoducho rozšíriť pomocou dodatočných knižníc (balíčkov), ktoré 
sú k dispozícii na rôznych online repozitároch (zoznam hlavných repozitárov je na adrese <a href = "https://cran.r-project.org/mirrors.html">https://cran.r-project.org/mirrors.html</a>).
V prípade potreby naištalovať dodatočnú knižnicu pre program R, bude tento fakt explicitne uvedený v podkladovom súbore s podrobnym popisom postupu práce. 
Jednotlivé R knižnice sú tvorené samotnými užívateľmi softwaru R a ich správne 
fungovanie nie je preto garantované a je namieste určitá opatrnosť a hlavne aktívne premýšľanie (kontrola) pri ich používaní.

Pre užívateľov programu R sú k dispozícii aj rôzne grafické rozhrania, ktoré je možne dodatočne nainštalovať a umožňujú (v určitých smeroch)
jednoduchšiu a prehľadnejšiu prácu. Najznámejší a pravdepodobne aj jeden z najpoužívanejších grafických rozhraní je <a href = "https://www.rstudio.com">RStudio</a> (s priamou podporou pre MS Windows, Linux, aj Macintosh).<br><br>

<b>Užitočné materiály pre prácu so štatistickým softwarom <i>R</i></b><br>
		
<ul>
<li>Bína, V., Komárek, A. a Komárková, L.: <i>Jak na jazyk R.</i>  (<a href = "NMFM301/Rmanual2.pdf">PDF súbor</a>)</li>
<li>Komárek, A.: <i>Základy práce s R.</i>  (<a href = "http://msekce.karlin.mff.cuni.cz/~komarek/vyuka/dataRko/Rmanual1.pdf">PDF súbor</a>)</li>
<li>Kulich, M.: <i>Velmi stručný úvod do R.</i> (<a href = "NMFM301/uvodr.pdf" >PDF súbor</a>)</li>
<li>De Vries, A. a Meys, J.: <i>R for Dummies.</i> (ISBN-13: 978-1119055808) </li>		
</ul><br>


### <font color = "#880000"><b>1. Grafické nástroje v programe R</b></font>

K dispozícii je veľký výber rôznych funkcii a príkazov určených k vytváraniu rôznych grafických výstupov. Dodatočné príkazy a funkcie je možne získať pri rozšírení základnej inštalácie a pridaní niektorého z dodatočných balíčkov (packages) - tieto dodatočné knižnice sú väčšinou špecifický zamerané na určitú konkrétnu oblasť a knižnica 
často poskytuje komplexnú sadu nástrojov na riešenie daného špecifického problému. 

Grafické funkcie v programe R možeme podľa spôsobu fungovania rozdeliť do troch základných kategórii: 

<ol>
<li><font color = "#880000"><b>Funkcie, ktoré vytvoria nové grafické rozhranie (okno) </b></font><br>
Pri volaní ktorejkoľvek fukcie z tejto kategórie automaticky dôjde k vytvoreniu nového grafického okna (graph window) v ktorom sa vykresli 
samotný  obrázok (graf). Toto okno je ponechané ako aktívne 
a pomocou ďalších funkcii z druhej skupiny (viď nižšie) je možné dopĺňať dodatočne objekty do již existujúceho obrázku, prípadne meniť 
rôzne nastavenia a vlastnosti a dotvoriť tak finálny graficky výstup, obrázok. <br>

Základné príkazy (napr.): `plot()`, `dotchart()`, `hist()`, `barplot()`, `pie()`, `boxplot()`, `pairs()`, atď.;<br><br>
</li>

<li><font color = "#880000"><b>Funkcie, ktoré dopĺňajú již vytvorený graf (okno)</b></font><br>
Do druhej kategórie patria funkcie a príkazy, ktoré fungujú len v prípade, že bola pred ich použitím zavolaná niektorá 
funkcia z prvej kategórie a vytvorené okno je stále aktívne. Pomocou príkazov a funkcii z tejto kategórie je možné dopĺňať 
ďalšie (často netriviálne) objekty do již existujúceho grafu (grafického okna - graph window). <br>

Základné príkazy (napr.): `points()`, `lines()`, `abline()`, `text()`, `polygon()`, `rect()`, `box()`, `segments()`, `arrows()`, `legend()`, atď.;<br><br>
</li>

<li><font color = "#880000"><b>Funkcie určené na manipuláciu s grafmi</b></font><br>
Do tejto kategórie patria funkcie a príkazy, ktoré nevytvárajú samotný obrázok a nedokážu ani dopĺňať 
objekty do již existujúceho obrázku, ale slúžia výhradne na jednoduchú manipuláciu s vytvorenými grafickými oknami (napr. 
uloženie grafu do súboru, rozdelenie grafického okna a vytvorenie niekoľkýh grafov v jednom okne, vytvorenie nového okna, a pod.)<br>

Základné príkazy (napr.): `dev.new()`, `X11()`, `dev.off()`, `postscript()`, `pdf()`, `png()`, `par()`, `layout()`, atď.;<br><br>
</li>
</ol>

Pomocou R helpu zistite, k čomu jednotlivé príkazy a funkcie slúžia, ako sú implementované, aké dodatočné parametre je možné pri volaní funkcie 
využiť a každú z uvedených funkcii použijte aspoň v jednom grafe, ktorý samostatne vytvoríte. <br><br>


#### <font color = "#880000"><b>Scatterploty</b></font>

Základná výhoda jednoduchého  scatterplotu (2 rozmerný <i>xy</i> graf) spočíva v tom, že je vizuálne veľmi ľahko vnímateľný a tym pádom aj priamočiaro pochopiteľný prostredníctvom ľudského oka. Základnou nevýhodou je jeho výrazne obmedzenie vzhľadom k počtu premenných, ktoré je možne zároveň zobraziť. To často predstavuje podstatnú redukciu čo sa týka možnosti vizualizácie komplexnej nohorozmernej povahy/štruktúry dat. 

Väčšiu komplexitu vizualizácie je samozrejme možné dosiahnuť pomocou viacrozmerných grafov, tie ale strácajú na svojej jednoduchosti a často sa stávajú výrazne neintuitívne a ťažko pochopiteľné prostredníctvom ľudského oka a jeho vnímacích schopností. 

Alternatívna možnosť je využiť jednoduchý dvojrozmerný graf, ale pomocou rôznych grafických nástrojov (napr. rôzne farby, grafické prvky, rozdielné zobrazovacie možnosti a pod.) zobraziť v tomto grafe čo najviac premenných - určitým spôsobom vyzualizovať čo možno najviac z celkovej mnohorozmernej kompexity dat. Základná myšlienka pri vytváraní grafov (dvojrozmerných scatterplotov) spočíva v tom, že <b>zďaleka nemusí dvojrozmerný graf zobrazovať pouze dve rôzne premenné.</b> K tomu je ale nutné <b>pristupovať k vytváraniu obrázku trochu kreativne a defaultné funkcie a príkazy v programe R sú v tomto zmysle nedostačujúce</b>. 

Na úvod použijeme data `mtcars` ktoré sú štandardne obsiahnuté v distribúcii Rka. Pozrieme sa na základné popisné charakteristiky pomocou 
štandardných R funkcii

```{r, eval = FALSE}
head(mtcars)
dim(mtcars)
summary(mtcars)
```

```{r, echo=FALSE}
attach(mtcars)
```

a nasledujúcim kódom vykreslíme graf (vpodstate dvojrozmerný scatterplot), ktorý ale ide nad rámec  defaultného scatterplotu pre spotrebu (<i>mpg</i>) a počet válcov (<i>cyl</i>).<br> Získavame jednoduchý (dvojrozmerný) a intuitivný obrázok, ktorý ale vizualizuje viac ako len dve rôzne premenné - čo sme dosiahli vhodným použitím různých farieb, a rôznych geometrických objektov (štvorce vs. kruhy) pre vykreslenie jednotlivých bodov. 

```{r, fig.width = 10}
x <- mtcars[order(mtcars$mpg),] # sort by mpg
x$cyl <- factor(x$cyl) # it must be a factor
x$color[x$cyl==4] <- "red"
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen"  
dotchart(x$mpg,labels=row.names(x),cex=.7,groups= x$cyl,
  	main="Gas Milage for Car Models\ngrouped by cylinder",
   xlab="Miles Per Gallon", gcolor="black", color=x$color, pch = x$am)
```

Alternatívný náhľad dostaneme prostredníctvom matice scatterplotov, pomocou príkazu `pairs()`:

```{r, fig.width = 10}
pairs(mtcars[,c(1,3,4,6)], col=mtcars$cyl, pch = mtcars$am)
```

Sofistikovanejšie verzie napríklad s príslušným odhadom hustoty, miery vzájomnej korelácie, či regresnej závislosti (a mnohem více) možeme konštruovať (napríklad) pomocou knižnice `library(psych)` príkazom `pairs.panels()`:

```{r, message=F, warning=F, fig.width = 10}
library(psych)
pairs.panels(mtcars[,c("mpg", "disp", "hp", "wt")], 
             method = "pearson", # correlation method
             hist.col = "#00AFBB",
             density = TRUE,  # show density plots
             ellipses = TRUE # show correlation ellipses
             )
```

Existujú samozrejme mnohé iné možnosti a ďalšie grafiké nástroje v Rku (doplňujúce knižnice), pomocou ktorých vytvoriť 'case-specific' obrázky a grafy. 
Hlavný dôraz je pritom kladený na vizuálnu stránku, graf by mal dostatočne názorne zobrazovať podstatnú štruktúru datového súboru. 

V prípade menšieho počtu premenných je celkom zaujímavou možnosťou aj zobrazenie marginálnych hustot pre dve konkrétne veličíny (z dôvodu 
obmedzeného vnímania viac-rozmerných grafov sa väčšinou nepoužíva vyšší počet veličin súčastne): 

```{r, fig.width = 10}
library(MASS)
library("RColorBrewer")
colors <- brewer.pal(5, "Reds")

z <- kde2d(mtcars[,1], mtcars[,4], n=5)

plot(mtcars[,c(1,4)], xlab="Miles per Galon", ylab="Horse Power", pch=21, bg = "yellow")
contour(z, drawlabels=FALSE, nlevels=4, col=colors, add=TRUE)
```

<u>Poznámka:</u><br>
Knižnica `MASS` je potrebná k spočítaniu jadrového odhadu dvojrozmernej hustoty (príkaz `kde2d()`) a knižnica `RColorBrewer` je potrebná na vytvorenie farebnej palety, podľa ktorej 
sú vyfarbené kontúry. <br><br>

V praxi použivame grafy, ktoré korespondujú s výzkumnou hypotézou a statistickou analýzou (napr. je zbytočné zobrazovať graf závislosti spotreby na 
automatickej prevodovke, ak hypotéza, ktorá nás zaujíma, sa pýta na to, či spotreba auta závisí na jeho hmotnosti - relevantným grafom sa v tomto prípade 
stava scatterplot spotreby vs. hmotnosti). <br><br>


#### <font color = "#880000"><b>Boxploty</b></font>

Scatterplot obsahuje/vizualizuje pôvodné data. Niekedy ale nie je také dôležite zobraziť samotné data, ale zaujímajú nás konkrétne popisné charakteristiky. 
Z ohľadom na následné štatistické spracovanie sú vhodné grafy popisných charakteristík nevyhnutnou súčasťou. <br><br>

Predstavu o štruktúre datového súboru z hľadiska niektorých dôležitých popisných charakteristík získame (aj keď len v určitej obmedzenej miere) 
napríklad pomocou boxplotov. Jedna sa síce o jednoduché dvojrozmerné grafy, ale apriorne obsahujú informáciu o polohe (popisné charakteristiky prvého rádu), ale aj o rozpětí - t.j. popisné charakteristiky druhého rádu. 

```{r, fig.width = 10}
boxplot(mpg ~ cyl, col = brewer.pal(3, "Blues"), xlab = "number of cylinders", ylab = "miles per galon", main= "")
```

prípadne verzia, ktorá zohľadňuje dve rôzne kategorické premenné (v tomto konkrétnom prípade spotrebu udávanu v míľach prejdených 
na jeden galón a identifikátor automatickej prevodovky: <i>Automatic = 0</i> a <i>Manual = 1</i>).

```{r, fig.width = 10}
boxplot(mpg ~ cyl + am, col = c(brewer.pal(3, "Greens"), brewer.pal(3, "Blues")), xlab = "No. of cylinders(.)Auto Transmission Indicator")
```


Alebo dokonca zložitejší prípad zobrazujúci spotrebu v závislosti na dvoch rôznych faktoroch a 95% konfidenčným intervalom pre skutočnú hodnotu 
médianu (s voľbou parametru `notched = TRUE`). 

```{r, fig.width = 10, warning = FALSE}
boxplot(mpg ~ cyl * am, col = c(brewer.pal(3, "Greens"), brewer.pal(3, "Blues")), xlab = "Number of Cylinders", ylab = "Miles per Galon | Automatic Transmission", main= "", notch = T)
```

Alebo celkom sofistikovany 'histogram', ktorý inkorporuje aj odhad hustoty (pomocou príkazu `vioplot()` z knižnice 'vioplot'). 
```{r, message=F, warning=F}
library(vioplot)
```

```{r, fig.width = 10}
x1 <- mtcars$mpg[mtcars$cyl==4]
x2 <- mtcars$mpg[mtcars$cyl==6]
x3 <- mtcars$mpg[mtcars$cyl==8]
vioplot(x1, x2, x3, names=c("4 cyl", "6 cyl", "8 cyl"), col="gold")
title("Violin Plots of Miles Per Gallon")
```

Podobný, ale interpretačne odlišný graficky výstup dostaneme pomocou príkazu `pirateplot()` z knižnice 'yarrr'. Pre správnu interpretáciu 
obrázku je vhodné naštudovať príslušný <a href = "https://cran.r-project.org/web/packages/yarrr/vignettes/pirateplot.html">manuál</a> k danej knižnici.

```{r, fig.width = 10, warning = F, message=F}
#install.packages("yarrr")
library("yarrr")
pirateplot(mpg ~ cyl, data = mtcars, xlab = "number of cylinders", ylab = "miles per galon", main= "", inf.method = "iqr")
```

Funkcia `pirateplot()` umožňuje rôzne ďalšie modifikácie a požadované užívateľské nastavenia výsledného grafického vystupu 
(viď <a href = "https://cran.r-project.org/web/packages/yarrr/vignettes/pirateplot.html">manuál</a>).

Napr. s intervalmi spoľahlivosti namiesto boxplotov 
```{r, fig.width = 10, warning = F, message=F}
pirateplot(mpg ~ cyl, data = mtcars, xlab = "number of cylinders", ylab = "miles per galon", main= "", inf.method = "ci")
```



<br><br>

#### <font color = "#880000"><b>Parallel Coordinates Plot </b></font>

Tento typ grafov sa zameriava priamo na závislostnú štruktúru vramci jednotlivých premenných v mnohorozmerných datach. 
V určitom zmysle vizuálne posudzujeme mieru korelácie medzi jednotlivými sledovanými premennými.
S využitím  knižnice `MASS` je možné zavolať funkciu `parcoord()` ktorej výstupom je nasledujúci graf. Povodné hodnoty jednotlivých premenných 
nie je možné z grafu získať. Každá premenná je škálovaná do intervalu (0,1) na ose y. Doležité je rozloženie jednotlivých po častiach lineárnych 
segmentov. 

```{r, fig.width = 10, message = FALSE}
library(MASS)
attach(mtcars)
```

```{r, fig.width = 10, message = FALSE}
colorVector <- rep("brown", dim(mtcars)[1])
colorVector[am == 0] <- "brown1"
colorVector[cyl == 6] <- "blue4"
colorVector[cyl == 6 & am == 0] <- "blue1"
colorVector[cyl == 4] <- "darkgreen"
colorVector[cyl == 4 & am == 0] <- "green"
parcoord(mtcars, col = colorVector, lty = gear)
```

Ako by ste nasledujúci graf interpretovali? Resp. aké závery je možné z tohto grafu vyvodiť? Čo indikujú lineárne časti, ktoré sú viacmenej rovnobežné v danom segmente a čo naznačujú segmenty, v ktorých sú lineárne časti priamok výrazne rôznobežné? 

Samozrejme existuje mnoho iných možnosti, ako graficky nahliadnuť do závislostnej štruktúry datového súboru, ktorý chceme následne štatisticky analyzovať. 
Opäť je možné takúto vizualizáciu vytvoriť na základe pôvodných dat (napr. práve uvedený parallel coordinates plot), alebo pomocou popisných charakteristík - napr. scatterplot výberových distribučných funkcii vyhodnotených v jednotlivých hodnotách dvoch rôznych premenných. 

Vždy je potrebné zvážiť, aký graf a ktoré grafické nástroje sú ideálne vzhľadom 
k problému a akým spôsobom vytvorený graf/obrázok náležite okomentovať a interpretovať.

<br><br>

#### <font color = "#880000"><b>Knižnica ggplot2 </b></font>

Alternatívu ku klasickým grafickým nástrojom, ktoré su k dispozícii v programe R, ponúka dodatočna knižnica `ggplot2`, ktorú naištalujete a inicializujete štandardnými príkazmi

```{r, fig.width = 10, message = FALSE, eval = FALSE}
install.packages("ggplot2")
```

```{r, fig.width = 10, message = FALSE}
library(ggplot2)
```

Základnou funkciou v tejto knižnici je funkcia `qplot()`, ktorá na rozdiel od štandardnej funkcie `plot()`, ponúka ďaleko väčšie možnosti 
pri vytváraní grafov a obrázkov (pozri help `?qplot()`).  

V datovom súbore `mtcars` najprv upravíme niektoré premenné - faktorizujeme ich a priradíme príslušne názvý jednotlivých úrovni.

```{r, fig.width = 10, message = FALSE}
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5), labels=c("3gears","4gears","5gears")) 
mtcars$am   <- factor(mtcars$am,levels=c(0,1), labels=c("Automatic","Manual")) 
mtcars$cyl  <- factor(mtcars$cyl,levels=c(4,6,8),  labels=c("4cyl","6cyl","8cyl"))
```

Následne už možeme použiť funkciu `qplot()` a vykresliť odhad hustoty pre spotrebu (miles per gallon) v závislosti na počte prevodových stupňov (premenná `gear`). 

```{r, fig.width = 10, message = FALSE}
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5), main="Distribution of Gas Milage", xlab="Miles Per Gallon",  ylab="Density")
```

Pomocou tej istej funkcie `qplot()`, ale s inou voľbou parametru `geom = "..."`, je možne celkovo meniť vzhľad a typ výsledného grafu. 

```{r, fig.width = 10, message = FALSE}
qplot(gear, mpg, data=mtcars, geom=c("boxplot", "jitter"), fill=gear, main="Mileage by Gear Number", xlab="", ylab="Miles per Gallon")
```

Prípadne vykresliť regresnú závislosť spotreby na váhe automobilu (aj s príslušnými pásmi spoľahlivosti pre regresnú přímku). 

```{r, fig.width = 10, message = FALSE, warning = FALSE}
qplot(wt, mpg, data=mtcars, geom=c("point", "smooth"), method="lm", formula=y~x, color=cyl, main="Regression of MPG on Weight", xlab="Weight", ylab="Miles per Gallon")
```   
   
<br><br>   
   
#### <font color = "#880000">Užitočné</font>
<hr size="3" width="100%" noshade style="color:#440000" align="left" />
Knižnica `ggplot2` funguje na princípe postupných vrstiev (layers), v ktorých sa vykresľuje výsledný graf. Jednotlivé vrstvy sa prídávajú pomocou 
vhodných príkazov, ako napr. `geom_points()`, `geom_abline()`, `geom_area()` `geom_bar()`, `geom_contour()`, `geom_polygon()`, atď. (zoznam napr. na stránke <a href = "http://sape.inf.usi.ch/quick-reference/ggplot2/geom">http://sape.inf.usi.ch/quick-reference/ggplot2/geom</a>). 

Jednoduchý príklad s využitím niekoľkých vrstiev: 

```{r, fig.width = 10, message = FALSE, warning = FALSE}
dataSum <- plyr::ddply(mtcars, "gear", plyr::summarise, mean = mean(mpg), sd = sd(mpg))

ggplot() +
  geom_point(data = mtcars, aes(x = gear, y = mpg)) +
  geom_point(data = dataSum, aes(x = gear, y = mean), colour = 'red', size = 3) +
  geom_errorbar(data = dataSum, aes(x = gear, y = mean,  ymin = mean - sd, ymax = mean + sd), colour = 'red', width = 0.4) +
  ggtitle("Car consumption summary given the number of gears")
``` 

<hr size="3" width="100%" noshade style="color:#440000" align="left" />
<hr size="3" width="100%" noshade style="color:#440000" align="left" /><br><br>   




<br><br>

### <font color = "#880000"><b>2. Reportovanie výsledkov - Sweave a Knit</b></font>

Podstatnou súčasťou štatistickej analýzy je reportovanie výsledkov. K tomu je nutné použíť nejakú vhodnú formu. 
V programe R je sú k dispozícii jednoduché a intuitívne možnosti reportovať výsledky vo forme výsledného PDF dokumentu 
vytvorenom v LaTeXu (pomocou knižnice `Sweave`), alebo vo forme HTML súboru a reportovanie vrámci webovej stránky (pomocou knižnice `Knit`). 

Jednoduchý návod na používanie Sweave a tiež Knit (ktorým bol vytvorený tento dokument) je na webovej stránke 

<a href = "https://support.rstudio.com/hc/en-us/articles/200552056-Using-Sweave-and-knitr"> https://support.rstudio.com/ </a>

Povedané stručne a veľmi jednoducho, `Sweave` je knižnica a tiež funkcia v programe R (teda `Sweave()`), ktorá integruje Rko a LaTeX. 
Analogicky je tomu tak v prípade knižnice a funkcie `Knit` (resp. `Knit()`), ktorá integruje (kompiluje) Rko do HTML kódu.

Základom je vytvorenie klasického `tex` súboru (pre Sweave) a `html` súboru (pre Knit), ktoré sú ale uložené vo formáte `*.Rnw` (Sweave) a `*.Rmd` (Knit). 

Do týchto suborov je potom možné okrem štandardného tex kódu (Sweave), alebo html kódu (Knit) vkládať aj vhodne označený Rkový kód. Následne zavolaním funkcie `Sweave("nazov_suboru.Rnw")` alebo `Knit(nazov_suboru.Rmd)` program R prebehne celý dokument a Rkový kód spracuje a na dané miesto doplní výsledok získaný vyhodnotením daného Rkového kódu. 
 Podkladový <i>tex</i> kód (prípadne <i>html</i> kód) R program ignoruje a výstupom je  buď `*.tex` súbor (po použití Sweave), alebo `*.html` súbor
(po použití Knit). S týmito súbormi je ďalej možné pracovať ako s klasickými `tex`, alebo `html` súbormi. 

V prípade, že použijeme k práci user-friendly interface (asi jedna z najlepších možnosti je `RStudio`)

<a href = "https://www.rstudio.com"> https://www.rstudio.com </a>

tak je možné okamžite vytvárať PDF a HTML súbory priamo z `Rnw` a `Rmd` súborov a to pouze stlačením príslučného tlačítka v menu RStudia. 

Podrobnejší návod na prácu so Sweave napr. tu: 

<a href = "http://gosset.wharton.upenn.edu/teaching/471/EPFL-Sweave-powerdot.pdf">http://gosset.wharton.upenn.edu/</a>

<br><br>

#### <font color = "#880000"><b>Sweave a Knit</b></font>

<ul>
<li>Pre ilustráciu, ako vkládať Rkový kód do `Rnw` súboru, slúži táto malá ukážka:<br>
<a href = "sweave_test.Rnw">Download Rnw súbor</a> (Sweave | UTF 8 kódovanie)<br> 
Následná kompilácia a teda aj automatické vytvorenie finálneho PDF súboru sa dosiahne pomocou stlačenia tlačítka `Compile PDF` (v interface RStudio) - viď 
obrázok nižšie.</li>

<li>Pre ilustráciu, ako vkládať Rkový kód do `Rmd` súboru, poslúži zdrojový súbor tejto stránky:<br>
<a href = "cvicenie2019_1.Rmd">Download Rnw súbor</a> (Knit | UTF 8 kódovanie)<br>
Následná kompilácia a vytvorenie finálneho HTML dokumentu pomocou stlačenia tlačítka `Knit HTML` - viď obrázok nižšie.</li><br><br>
</ul>


<center>
<img src = "rnw.png" width = "900">
<br><br><br>
<img src = "rmd.png" width = "900">
</center>
<br><br>

<hr size="3" width="100%" noshade style="color:#440000" align="left" />
<hr size="3" width="100%" noshade style="color:#440000" align="left" /><br><br> 


## <font color = "#880000"><b>Domáca (samostatná) úloha </b></font>
### (Deadline: Druhé cvičenie / 09.03.2021)

Vypracovanie parciálných domácich úloh zadávaných v priebehu semestra je nutnou podmienkou pre získanie zápočtu. 

Zadanie samostatnej práce pre prvý týždeň semestru: 

<ul>
<li>S pomocou návodu na stránke posluchárne <a href = "https://labs.karlin.mff.cuni.cz/pocitacova-laborator-k10/">K10</a> si vytvorte vlastnú (jednoduchú) webovú stránku, na ktorú budete postupne pridávať vypracované ulohy (v podstatě stačí vytvořit textový soubor index.html, který pomocí vzdáleného přístupu nahrajete do podadresáře public_html ve Vašem domácím adresáři). Subor index.html je možné editovať v ľubovolnom textovom editore, prípadne je možné tento súbor vytvoriť priamo v programe R pomocou knižnice `Knit`.  Link na vytvorenú webovú stránku spolu s vypracovanou prvou úlohou je nutné zaslat 
emailom na <i>maciak [AT] karlin.mff.cuni.cz</i> a zároveň na <i>hlavka [AT] karlin.mff.cuni.cz</i>. </li>


<li>V prípade záujimu je možné prístup na stránku snadno zaheslovat pomocí programu htaccess. Spolu s linkom na stránku je ale následne nutné zaslať emailom aj prístupové heslo. </li>
</ul>

Pomocou in3trukcii na stránke <a href = "https://dl1.cuni.cz/course/view.php?id=11882">Moodle UK</a> nainštalujte do programu R knižnicu `SMSdata` s rôznými datovými súbormi. Zo zoznamu datových súborov ktoré sú v knižnici k dispozícii a ktorý získate príkazom

```{r, eval = F}
data(package = "SMSdata") 
```
 
 si vyberte jeden konkrétny datový súbor (k dispozícii je 21 rôznych dátových  súborov), ktoré do Rka stačí načítať pomocou príkazu
`data(nazov_datasetu)`, napríklad

```{r, eval = F}
data(plasma) 
```

<ul>
<li>Vyberte si jeden dátový súbor a načítajte ho v programe R;</li>

<li>Využijte grafické nástroje v programe R a vhodne vizualizujte data; 

<li>Na svoju webovú stránku pridajte alespoň dva obrázky, doplňte jednoduchý komentár k obom grafom 
a aspoň stručne komentujte mnohorozmerný charakter data, ktorý lze pomocou vami vybraných grafov v datach odhaliť;</li>

<li>Link na webovu stránku s obrázkami je nutné zaslať emailom na adresy <i>maciak [AT] karlin.mff.cuni.cz</i> a <i>hlavka [AT] karlin.mff.cuni.cz</i> 
<font color = "red">najneskôr v utorok, 09.03.2021, do 14:00</font>.</li>
</ul>

</td></tr></table>
<br><br><br>