Chapitre 3 RMarkdown

3.1 RMarkdown pour quoi faire ?

3.1.1 Automatisation de la production de document scientifique

Dans un contexte de science reproductible, produire

  • Présentation, article, notes de cours, livre, …
  • Code
  • Données

sous la forme de documents PDF, HTML, MS Word etc …

Site web : http://rmarkdown.rstudio.com

3.2 Comment ça marche

3.2.1 Un exemple de fichier .Rmd : ce document

Exemple d’un document RMarkdown

Exemple d’un document RMarkdown

3.2.2 Schéma conceptuel

Processus de production de documents

Processus de production de documents

3.2.3 Markdown

Un langage à balises très simple (version simplifiée de html par exemple)

3.2.3.1 Exemple

## Heading

### Sub-heading
#### Another deeper heading
 Paragraphs are separated
by a blank line.

3.2.4 Markdown Cheatsheet

Tout le détail (rapide !)

Détails sur Markdown

Détails sur Markdown

3.2.5 Pandoc

C’est un convertisseur de format de documents. Il sait

  • prendre un document d’un format x pour le passer en Markdown étendu
  • prendre un document Markdown étendu pour le passer en un format y

De fait il peut passer d’un format x à un format y

https://pandoc.org/MANUAL.pdf

3.2.6 RMarkdown (Allaire et al. 2017)

C’est un document pandoc avec des balises spécifiques R. http://rmarkdown.rstudio.com/lesson-1.html

3.2.7 De RMarkdown à un document finalisé avec knitr (Xie 2017c)

Le bouton knit effectue les opérations suivantes :

  1. Extraire la partie Markdown texte
  2. Executer le code R pour produire les sorties demandées
  3. Intégrer les sorties précédentes dans un document html, word ou pdf

3.3 Un document RMarkdown à la loupe

3.3.1 Entete du document : YAML

Un exemple d’entête de fichier RMarkdown

Un exemple d’entête de fichier RMarkdown

3.3.2 Options globales pour le code R

Les options du code R du document peuvent être spécifiées par défaut Gérer les options globalement

3.3.3 Code Chunk

```{r}
2+2
```
## [1] 4

ou python, ou sql, bash ….

3.3.4 R Code Chunk, quelques options utiles

```{r, fig.show='hide', warning=TRUE, message=FALSE}
data(cars)
m <- mean(cars$speed)
plot(speed~dist)
```

La vitesse moyenne est 15.4.

References

Allaire, JJ, Joe Cheng, Yihui Xie, Jonathan McPherson, Winston Chang, Jeff Allen, Hadley Wickham, Aron Atkins, Rob Hyndman, and Ruben Arslan. 2017. Rmarkdown: Dynamic Documents for R. https://CRAN.R-project.org/package=rmarkdown.

Xie, Yihui. 2017c. Knitr: A General-Purpose Package for Dynamic Report Generation in R. https://CRAN.R-project.org/package=knitr.