R Markdown poskytuje jednotný rámec pro psaní dokumentů, které kombinují:
Je to ideální nástroj pro výuku statistiky, psaní reportů, analýz i publikací.
R Markdown dokument se skládá ze tří částí:
---), kde se
nastavuje název, autor, formát výstupu.Chunk vložíš zkratkou Ctrl + Alt + I (nebo Cmd +
Option + I na Macu).
Chunk spustíš:
Chunky mají argumenty, které ovlivňují jejich chování:
# eval = FALSE → kód se nespustí, jen se zobrazí
# include = FALSE → kód se spustí, ale nezobrazí se kód ani výstup
# echo = FALSE → nezobrazí kód, ale zobrazí výstup
# message = FALSE → skryje zprávy (např. z library())
# warning = FALSE → skryje varování
# results = "hide" → skryje textový výstup
# fig.show = "hide"→ skryje grafy
# error = TRUE → Knit pokračuje i při chybě
# cache = TRUE → ukládá výsledky pro rychlejší opakovaný běh
library(tidyverse)
# library(purrr) # tidyverse už purrr obsahuje
library(modelr) # často se používá s tidyverse
options(na.action = na.warn)
Výchozí výpis:
mtcars[1:5, ]
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Formátovaná tabulka pomocí knitr::kable:
knitr::kable(
mtcars[1:5, ],
caption = "Ukázková tabulka vytvořená pomocí kable()"
)
| mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | carb | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 | 4 |
| Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 | 4 |
| Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |
| Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 | 1 |
| Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 | 2 |
comma <- function(x) {
format(x, digits = 2, decimal.mark = ",", big.mark = " ")
}
comma(3452345)
#> [1] "3 452 345"
comma(0.12358124331)
#> [1] "0,12"
(Tento příklad je funkční, ale potřebuješ mít soubor
fuel-economy.Rmd – proto je vypnutý
eval=FALSE.)
reports <- tibble(
class = unique(mpg$class),
filename = str_c("fuel-economy-", class, ".html"),
params = map(class, ~ list(my_class = .x))
)
reports
reports %>%
select(output_file = filename, params) %>%
pwalk(rmarkdown::render, input = "fuel-economy.Rmd")
Pokud chceš používat citace, přidej do YAML hlavičky:
bibliography: references.bib
csl: apa.csl
(nebo jiné CSL – např. csl: apa.csl,
csl: cze-apa.csl apod.)
output:
html_document:
toc: true
toc_float: true
pdf_document: default
word_document: default
Jednorázové renderování do konkrétního formátu:
rmarkdown::render(
"R_Markdown_dokumentace.Rmd",
output_format = "word_document"
)
```
{r} ... syntaxecomma (přidán decimal.mark místo
decimal).x v map() – modernější stylStačí zkopírovat celý text výše do souboru s příponou
.Rmd a měl by se bez problémů „Knitovat“ do HTML
(nejspolehlivější výstup pro začátek).
Hodně štěstí s R Markdownem!