Menu File > New File > R Markdown...
Pandoc est généralement pré-installé sur les systèmes d’exploitation MACOS et Windows.
Si vous n’avez pas \(\LaTeX\) d’installé, utilisez le package tinytex
pour la compilation en pdf.
En-tête YAML
: indications de variables pour la compilation du document : métadonnées (titre, auteur, date…), type de document souhaité (format et template), options de mise en page (TOC, Bibliographie, CSS…).
Documentation → R Markdown: The Definitive Guide.
Texte balisé en Markdown
: texte en langage naturel mis forme grâce à la syntaxe markdown.
Documentation → Learn X in Y minutes
Chunks : code qui sera affiché (ou pas) et dont le résultat sera inséré (ou pas) dans le document final. Plusieurs options permettent de gérer l’éxécution, l’affichage du code et de résultats.
Documentation → Chunk options and package options
YAML
)--- title: Programmation lettrée et Notebook author: Marc Done date: 2023-02-21 output: ioslides_presentation: transition: slower incremental: true widescreen: true logo: img/rmarkdown.png ---
De nombreuses variables sont paramétrables. Certaines sont spécifiques à des formats de sortie ou à des templates. Mais, dans tous les cas :
L’indentation des variables doit être parfaite !
La variable output
vous offre la possibilité de produire plusieurs formats à partir du même fichier Rmd :
--- title: Programmation lettrée et Notebook author: Marc Done date: 2023-02-21 output: html_document: default pdf_document: default ---
Kniter votre fichier en ligne de commande de la façon suivante :
rmarkdown::render("mon_premier_rmarkdown.Rmd", output_format = "all")
De nombreux packages fournissent des modèles de mise en page prêts à l’emploi :
bookdown
, distill
, flexdashboard
, hrbrthemes
, komadown
, komaletter
, learnr
, linl
, memor
, pagedown
, papaja
, pinp
, prettydoc
, radix
, revealjs
, rmarkdown
, rmdformats
, rmdshower
, rticles
, rzine
, tufte
, unilur
, vitae
, xaringan
…
Ils permettent de produire des documents de toute forme, comme :
- des documents (pages) HTML,
- des documents paginés (articles, livres, thèses) en pdf avec \(\LaTeX\), docx, odt…,
- des présentations/diaporama en format HTML, pdf ou pptx,
- des tableaux de bord interactif,
- des cours et sujets d’examens (interactif ou non),
- et même des sites internet statiques !
rmdformats
- modèle readthedown
--- title: "Template readthedown proposé par le package rmdformats" date: "2023-02-21" output: rmdformats::readthedown: highlight: kate ---
L’interface Rstudio permet de générer un rmd paramétré dans un modèle de mise en page souhaité. Pour cela, installer le package qui fournit le template que vous souhaitez utiliser. Ex :
install.packages("rmdformats")
rmdformats
Une fois installé, les templates proposés par le package installés sont disponibles en clic-buton dans Rstudio :
Pour produire des rapports sur différentes périodes, zones géographiques… A partir du même fichier R Markdown !
--- title: Rapport statistique IDH output: html_document params: annee: 2023 region: Europe ---
Kniter votre fichier en ligne de commande de la façon suivante :
rmarkdown::render("monfichier.Rmd", params = list(annee = 2013, region = Asie))
Cette fonctionnalité est aussi disponible en clic-bouton via l’interface Rstudio :
markdown
Deux façons d’insérer du code dans son document :
Code chunk
```{r, eval=TRUE, echo=FALSE} head(mtcars) ```
Inline code, pour inclure du code dans une zone de texte
La moyenne est de `r mean(mtcars$cyl)`.
names(knitr::knit_engines$get())
## [1] "awk" "bash" "coffee" "gawk" "groovy" "haskell" ## [7] "lein" "mysql" "node" "octave" "perl" "php" ## [13] "psql" "Rscript" "ruby" "sas" "scala" "sed" ## [19] "sh" "stata" "zsh" "asis" "asy" "block" ## [25] "block2" "bslib" "c" "cat" "cc" "comment" ## [31] "css" "ditaa" "dot" "embed" "eviews" "exec" ## [37] "fortran" "fortran95" "go" "highlight" "js" "julia" ## [43] "python" "R" "Rcpp" "sass" "scss" "sql" ## [49] "stan" "targets" "tikz" "verbatim" "glue" "glue_sql" ## [55] "gluesql"
python
et le package reticulate
Initialisation de la configuration
```{r, include = FALSE, eval = TRUE} library(reticulate) use_python("usr/local/bin/python") use_virtualenv("r-reticulate") py_install(c("pandas", "numpy")) ```
Script python
```{python, eval = TRUE} a = 15 + 45 print(a) ```
## 60
SQL
avec scripts externesEtape 1 : connexion à la base de données
```{r , eval = TRUE} conn <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:") ```
Pour se déconnecter (en fin de document) :
```{r , eval = TRUE} DBI::dbDisconnect(conn) ```
Etape 2 : Lecture et éxécution d’un fichier sql
```{sql, connection=conn, code=readLines('sql/list_tables.sql')} ```
SELECT name FROM sqlite_master WHERE type='table';
name |
---|
mtcars |
node.js
avec un script externeVous voulez présenter du code node.js
.
Vos scripts sont dans des fichiers .js
.
Vous pouvez écrire :
```{node, code=readLines('node/example.js')} ```
const hi = (name) => { console.log("Hello " + name + "!"); }; hi("Bob");
R Markdown Cheat Sheet par RStudio, licence CC BY 4.0
Les références :
knitr
Elegant, flexible, and fast dynamic report generation with REn français :
Cette présentation est fortement inspirée d’un excellent support de communication existant, dont le code source est disponible sur GitHub.
Il s’agit d’un document Rmarkdown au format ioslides. Il a donc été très simple de repartir du code source original pour produire ce diaporama !