RmarkDown - Notebook - Jupyter
Rapports automatisés - Documents dynamiques
Créer des notebooks à partir de R Studio
1- Installer RStudio pour créer mon premier notebook
Au lieu d'installer le R classique (R commander), on peut installer RStudio : ce dernier a des avantages et des inconvénients plus simple d'utilisation, plus facile de retrouver des commandes, de décrire des objets, mais limiter dans la gestion des fenêtres graphiques (taille, interactivité).
Un des gros avantages de RStudio est la fenêtre en haut à droite qui permet d'avoir un descriptif des objets
Les dernières versions de RStudio proposent une version WYSIWYG (qui permet de voir le résultat de son écriture comme dans un traitement de texte classique).
Actuellement au moment de la màj de cette page (décembre 2021) : le mieux est la dernière version de RStudio.
Mettre le dictionnaire du correcteur d'orthographe de RStudio en Français.
Faire Tools/Global options et sélectionner Spelling.
Choisir un nouveau dictionnaire pour mettre le français.
2- Réalisation d'un notebook RmarkDown avec RStudio
2.1- Créer mon premier Notebook/Rmarkdown
1) C'est la première fois que je souhaite faire un rapport automatisé ? Comment je débute avec Rmarkdown ?
Réaliser des
Utiliser RStudio pour créer un Notebook en faisant File>New File>R Notebook/Rmarkdown (peu importe l'un ou l'autre).
RStudio va vous demander des màj : on dit oui à tout !
2) Il me demande un titre, je fais quoi ?
Eh bien je mets un titre ! Celui de mon choix : de préférence pertinent !
Et je coche l'option html (facile) ou pdf (plus difficile à gérer, mais support plus facile à mettre en forme).
3) Comment passer dans le mode visuel de l'éditeur Rmarkdown ?
Une fois que j'ai créer mon notebook ou mon rmarkdown, je clique sur le compas au haut à droite pour passer en mode visuel.
2.2- Prise en main de Rmarkdown
Grossièrement : il y a deux types de régions à mettre dans un notebook.
Les zones de textes, qui apparaîtront comme le corps du texte du compte-rendu Rmarkdown.
Les zones de code ou chunk, qui apparaissent en grisé.
2.2.1- Les zones de texte
RAS : cela s'édite comme un traitement de texte.
2.2.2- Les zones de codes ou chunk
Pour ajouter une zone de code R : il suffit de taper le raccourci ctrl+alt+i. Le code sera à taper entre les balises ```.
```{r}
```
Des options vont permettre de rendre le code invisible ou visible dans le compte-rendu édité :
{r echo=TRUE} # CODE VISIBLE ET RESULTAT AUSSI
{r echo=FALSE} # CODE INVISIBLE ET RESULTAT VISIBLE : idéal pour insérer une figure
{r include=FALSE} # CODE INVISIBLE ET RESULTAT INVISIBLE
{r warning=FALSE} # MESSAGE D'ALERTE INVISIBLE
{r message=FALSE} # MESSAGE DE SORTIE INVISIBLE
# AFFICHER SCRIPT, MASQUER LES SORTIES DE FONCTIONS (output)
{r echo=TRUE, results='hide'}
{r eval=FALSE} # Le chunk ne sera pas exécuté durant la compilation.
Remarque : pour ajouter plusieurs arguments, il faut les séparer d'une virgule !
Ex :
{r echo=TRUE, warning=FALSE}
On va ainsi pouvoir taper un exemple qui générera un histogramme.
```{r}
x <- rnorm(120) # Un commentaire dans une zone R est précédé d'un #
hist(x)
```
Chaque ligne d'une zone R peut être exécutée individuellement avec : ctrl + entrée
Toutes les lignes d'une zone R peuvent exécutée avec : ctrl + shift + entrée
Le notebook peut être édité intégralement : ctrl + alt + R
Le notebook html est créé avec Preview.
Attention de laisser une espace entre chaque zone R.
Voici 2 exemples : l'un dont le code est complet pour obtenir un notebook viable, l'autre directement ouvrable et publiable au format RMD
Exemple 1 de notebook (cliquer pour le voir)
Exemple complet :
---
title: "Mon premier Notebook"
output:
html_notebook: default
test01_notebook: default
html_document:
df_print: paged
---
#Titre de niveau 1
##Titre de niveau 2
```{r}
x <- rnorm(120) # Un commentaire dans une zone R est précédé d'un #
hist(x)
```
2.3- Publier votre compte-rendu au format PDF ou HTML
Pour éditer le compte-rendu, il suffit de cliquer sur le bouton Knit !
Oui, mais je fais quoi si la compilation au format PDF plante ?
2 options :
1) La compilation plante s'il y a des erreurs dans votre code : il va falloir les corriger
2.4- Sortir du mode visuel (cliquer pour dérouler)
On va pouvoir éditer un code qui permettra automatiquement d'avoir un notebook au format html avec de jolis titres.
Les titres sont à précéder de #.
---
title: "Mon premier Notebook"
output: test01_notebook
---
#Titre de niveau 1
##Titre de niveau 2
`Ceci est un commentaire précédé de `
On peut ajouter des commentaires précédés de ` (à taper avec altGr + 7)
3- Forum aux Question Rmarkdown (FAQ Rmarkdown)
Quand je veux publier mon rapport au format pdf pour la première fois, ça ne marche pas ? Que dois-je faire ?
Il suffit de taper (ou copier-coller) directement dans la console R/RStudio le code suivant :
tinytex::install_tinytex()
J'ai un message d'erreur qui parle de LaTeX et de kpathsea lorsque je tente de compiler mon pdf !
Essayer de taper cela dans la console !
tinytex:::install_prebuilt()
J'ai message d'erreur xfun::normalize_path lorsque je tente de compiler mon pdf avec knitr.
Je rencontre ce message d'erreur :
Erreur dans xfun::normalize_path(path, ..., must_work = must_work, resolve_symlink = FALSE) :
argument inutilisé (resolve_symlink = FALSE)
Appels : <Anonymous> -> normalize_path
Essayer le code suivant pour mettre tous les packages R à jour.
update.packages(checkBuilt =TRUE, ask = FALSE)
Sinon, essayer de supprimer le packages xfun.
remove.packages("xfun")
Je ne réussis pas à installer une librairie sous RStudio. Que pour forcer l'installation d'une librairie sous RStudio ?
En général, le plus simple est d'ouvrir R GUI = R classique (pas RStudio) et d'installer ma librairie dans la console R :
install.packages("ma_librairie")
Ensuite, à chaque fois que j'aurais besoin de ma librairie dans RStudio je vais dans R et je fais ;
library("ma_librairie")
Penser aussi à vérifier la connexion internet et vérifier aussi que R est à jour !
Je souhaite justifier le texte dans Rmarkdown et mettres des alinéas
Pour justifier le texte : je colle le code suivant (en gras) juste en-dessous de l'encadré où est le titre du Rmarkdown :
---
title: 'Mon_titre'
author: "AM"
date: "April 1, 2021"
output: html_document
---
<style>
body {
text-align: justify}
</style>
Pour mettre un alinéa : il suffit que je précède toute phrase du caractère (plusieurs fois)
Ensuite, à chaque fois que j'aurais besoin de ma librairie dans RStudio je vais dans R et je fais ;
Cette phrase commence avec un alinéa.*
Je souhaite centrer les données lors de l'affichage d'un tableau data.frame
Voici un exemple de chunk qui affiche un tableau aux données centrées dans rmarkdown
library(knitr)
data("iris")
kable(iris[1:5,],align=c(rep('c',times=5)))# 5 nombre de colonnes
Comment centrer et redimensionner un graphique dans Rmarkdown ?
Voici un exemple de chunk qui affiche un graphique centré et redimensionné manuellement (largeur et hauteur)/
{r fig1, fig.height = 4, fig.width = 4, fig.align = "center"}
data("iris")
plot(iris[,1],iris[,2])
Comment citer une variable dans le texte hors d'un chunk ?
Si je veux directement voir le contenu d'une variable glissé naturellement au milieu du texte.
Je fais la chose suivante, je me mets en mode Source (non visuel) et je tape `r nom_de_ma_variable`.
Remarque : ` se tape en faisant altGr+7
4- Créer un notebook avec Jupyter au lieu de RStudio
En développement.
L'avantage d'utiliser Jupyter, c'est que cet outil marchera aussi pour d'autres langages comme Python et Julia.
5- Convertir mon fichier Rmarkdown en script R
Il suffit de taper la commande suivante dans la console de RStudio :
knitr::purl("fichier.Rmd")