Další užitečné triky

Zrychlení opakovaného Knit HTML

Pokud jste vytvořili časově náročnější dokument v R Markdown, což se stává například při kreslení grafů či analýze většího množství dat, může být opakované vytváření html dokumentu obtěžující. Přitom ale potřebujete editovat text, opravovat překlepy apod. Pomocí jednoduchého triku můžete proces Knit HTML výrazně urychlit.

Stačí, když v hlavičce každé sekce kódu v R uvedete parametr cache=TRUE.

```{r, cache=TRUE}
náročné výpočty...
```

Pokud chcete tuto volbu nastavit hromadně pro všechny bloky kódu v celém dokumentu, použijte na začátku souboru následující zaklínadlo.

```{r setoptions, echo=FALSE}
library(knitr)
opts_chunk$set(cache=TRUE)
```

Všechny bloky se zapnutou cache se provedou jen jednou. Teprve, pokud v nich samotných uděláte změnu, spustí se znovu. Jinak budou brány jejich výstupy z cache.

Příkaz sessionInfo()

Pokud chcete zaznamenat replikovatelný postup, použití R Markdown dokumentu je dobrým začátkem. Výhodou je, že kromě textu popisujícího experiment jsou zobrazeny i příkazy a jejich výstupy, takže si každý může postup zkontrolovat a případně sám znovu provést.

Problém ovšem je, že každý uživatel může mít trochu jinou verzi dílčích knihoven i samotného R. Přestože by většina základních postupů měla napříč různými verzemi knihoven poskytovat stejné výsledky, nemusí tomu tak být vždy. Proto je dobré uvést konkrétní verze všech částí, které jste k provedení programu použili. K tomu slouží následující příkaz.

sessionInfo()
## R version 3.2.3 (2015-12-10)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 7 x64 (build 7601) Service Pack 1
## 
## locale:
## [1] LC_COLLATE=Czech_Czech Republic.1250 
## [2] LC_CTYPE=Czech_Czech Republic.1250   
## [3] LC_MONETARY=Czech_Czech Republic.1250
## [4] LC_NUMERIC=C                         
## [5] LC_TIME=Czech_Czech Republic.1250    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
## [1] magrittr_1.5    tools_3.2.3     htmltools_0.3   stringi_1.0-1  
## [5] rmarkdown_0.9.2 knitr_1.11      stringr_1.0.0   digest_0.6.8   
## [9] evaluate_0.8

Výhodou je, pokud ho necháte přímo součástí R Markdown dokumentu, že bude vypisovat vždy ty verze knihoven, se kterými byl aktuální výsledný dokument vyroben.

Zkušení odborníci v něm pak najdou vše, co potřebují. Zvláště důležité je provedení tohoto příkazu v případě, že máte podezření na chybu v nějaké knihovně a žádáte o pomoc na internetových fórech. Uvést přesné verze použitých knihoven je pak naprostá samozřejmost.


© 5. 1. 2016 Tomáš Bořil, borilt@gmail.com