Úvod

R Markdown poskytuje jednotný rámec pro psaní dokumentů, které kombinují:

  • text,
  • R kód,
  • výsledky kódu (tabulky, grafy, výstupy),
  • případně citace a bibliografii.

Je to ideální nástroj pro výuku statistiky, psaní reportů, analýz i publikací.

Principy R Markdown

R Markdown dokument se skládá ze tří částí:

  1. YAML hlavička (mezi ---), kde se nastavuje název, autor, formát výstupu.
  2. Text psaný v Markdownu – nadpisy, odrážky, kurzíva, tučné písmo.
  3. Kódové bloky (chunks) – části R kódu obklopené třemi zpětnými uvozovkami.

sem patří R kód

Chunk vložíš zkratkou Ctrl + Alt + I (nebo Cmd + Option + I na Macu).
Chunk spustíš:

  • Ctrl + Shift + Enter (jen aktuální chunk),
  • Ctrl + Shift + K (celý dokument = Knit).

Nastavení chunků

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

Globální nastavení chunků

Práce s balíčky

library(tidyverse)
# library(purrr)     # tidyverse už purrr obsahuje
library(modelr)    # často se používá s tidyverse
options(na.action = na.warn)

Tabulky

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()"
)
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

Vlastní funkce

comma <- function(x) {
  format(x, digits = 2, decimal.mark = ",", big.mark = " ")
}

comma(3452345)
#> [1] "3 452 345"
comma(0.12358124331)
#> [1] "0,12"

Parametrizované reporty (pokročilé)

(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")

Citace a bibliografie

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.)

Další formáty výstupu

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"
)

Užitečné odkazy

```

Shrnutí hlavních oprav

  • správné {r} ... syntaxe
  • konzistentní pojmenování chunků (setup)
  • přidány užitečné globální volby (message/warning = FALSE)
  • drobná úprava funkce comma (přidán decimal.mark místo decimal)
  • použití .x v map() – modernější styl
  • opraveny uvozovky a escapování v ukázkách

Stačí 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!