Co si zde představíme?
Budete potřebovat nainstalovat balíčky rmarkdown a
knitr.
V záložce File > New File > R Markdown můžete založit
nový typ dokumentu s koncovkou .Rmd. Můžete si vybrat, zda
má být výstupní formát HTML či PDF, případně něco pokročilého. Soubor začíná
hlavičkou, kde si můžete upravit název, autora, datum, typ výstupu a
mnohem více. PDF či HTML vyrobíte stistknutím tlačítka Knit v
horní záložce, kde lze i vybrat typ výstupu.
Text, který volně píšete bude součástí výsledného dokumentu. Odstavce oddělíte prázdným řádkem. Seznamy v neočíslovaných bodech zapíšete pomocí hvězdiček takto (je třeba volný řádek):
strojové písmo získáte obalením do “`” (používané pro
Rkové příkazy či objekty).Očíslované seznamy se musí začít číslem čí písmenem s tečkou a pak se číslují samy a správně:
<!-- a -->:Až s volným řádkem se list ruší. Teď si ukážeme, jak se pracuje s nadpisy.
Vidíte?
Ovšem největší přínos Rmarkdownu tkví v inkluzi zdrojového kódu Rka
(a případně jiných jazyků). Základním místem, kam vkládat Rkový kód je
tzv. chunk. Lze jej vytvořit pomocí Ctrl+Alt+I nebo
kliknutím na +C v horní liště. Je vždy oddělen třemi symboly
“", což na české klávesnici je *Alt Gr + 7*. Následují složené závorky, ve kterých se udá, o jaký typ chunku jde, zder`
pro Rko:
x <- rnorm(1)
# komentáře zde fungují jako v klasickém Rkovém skriptu
# nadpisy chunku by měly být jedinečné a ideálně bez mezer (raději pomlčky)
Do textu pak můžete vpisovat přímé výsledky pomocí apostrofů
začínajících písmenem r. Ku příkladu vygenerovaná hodnota x
byla 0.5048723, což zaokrouhleno na 3 platná číslice je 0.505.
Každý chunk má spoustu nastavení, které do hlavičky můžete zadat,
abyste upřesnili, co se má stát s Rkovým kódem. Nejužitečnější je skrytí
zdrojového kódu pomocí echo:
Teď je hodnota x rovna 0.255, ale čtenář dokumentu to
neuvidí.
Tohle je ukázka neprovedeného zdrojového kódu (nemusí být ani
funkční) pomocí eval:
x <- 3
Kód se ukáže čtenáři, ale hodnota x je stále 0.255.
Ve výsledném dokumentu je vždy zobrazeno veškeré tisknutí, které tříští kód a výsledek:
x
## [1] 0.254896
summary(rnorm(50))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.27952 -0.90397 -0.07408 -0.16322 0.55628 1.44274
Pokud nechceme výsledky vidět, můžeme to zakázat pomocí
results:
summary(rnorm(50))
log(-3)
## Warning in log(-3): NaNs produced
Ovšem varovné hlášky to stále ukazuje. Pokud tomu chceme předejít,
tak musíme upravit warning:
log(-5)
library(mixAK)
Jak je vidět, načítání knihoven či používání funkcí občas vypisuje
nechtěný text. K tomu je nutné ještě přidat další nastavení pro
message:
log(-5)
library(car)
Všechna tyto hlavičková nastavení chunku mají své defaultní hodnoty, které lze přenastavit pomocí:
knitr::opts_chunk$set(warning = FALSE, message = FALSE) # pro přehlednost raději nahoře v úvodu souboru
Teď už by to vždy mělo zamezit tisknutí nechtěných zpráv:
log(-10)
## [1] NaN
fig_dir <- file.path(dirname(getwd()), "fig")
Spousta parametrů je určena obrázkům. Lze tu přenastavit velikost, zarovnání, popisky atd.
x <- runif(50)
y <- 1 - x + rnorm(50)
par(mfrow = c(1,1), mar = c(4,4,0.5,0.5))
plot(x, y, bg = "lightblue", col = "blue", pch = 21)
abline(1, -1, col = "red", lty = 1)
Scatterplot \(x\) a \(y\).
Pomocí fig.keep či fig.show můžete zakázat
vykreslovaným obrázkům, aby se ve výsledku objevily:
hist(x)
Histogramy \(x\) a \(y\).
hist(y)
Obrázek se dá uložit rovnou pomocí těchto chunk nastavení pomocí
fig.path, přičemž se uloží pod názvem chunku, v případě
většího počtu doplněn ještě o pořadí určené písmeny:
par(mfrow = c(1,1), mar = c(4,4,0.5,0.5))
plot(x, y, bg = "lightblue", col = "blue", pch = 21)
abline(1, -1, col = "red", lty = 1)
Scatterplot \(x\) a \(y\).
Takto lze vložit již vytvořený obrázek:
Případně ještě takto přímo do textu: 
Nebo si lze udělat referenci k obrázku, kterou uvedeme na samotném konci souboru:
Tabulku lze stvořit hezky manuálně pomocí čar a pomlček:
| První nadpis | Druhý nadpis |
|---|---|
| obsah | 1.23 |
| obsah | 5.35 |
Ale nejlépe se dělá pomocí funkce kable:
kable(head(iris))
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
Na těchto
stránkách se pak dozvíte více o tvorbě tabulek a funkce
kable.
Na závěr si už jen řekneme, jak jsem celou dobu vytvářel z Rmd souborů Rkové skripty:
knitr::purl(paste0("cviceni_", x, ".Rmd"), documentation = 2) # podívejte se na jiné volby documentation
Zde na konci souboru vypíšeme přehled všech id, který nebude viditelný pro čtenáře: