10 astuces pour Rmarkdown

  Si vous êtes complètement débutant en Rmarkdown, je vous conseille de commencer par lire mon  article “Guide de démarrage en Rmarkdown” Je partage ici 10 astuces pour aller un peu plus loin dans l’utilisation de ce format Rmarkdown.   Table des matières
  1. Afficher un résultat dans la partie texte
  2. Générer la date de façon automatique
  3. Ne pas exécuter le code d’un chunk
  4. Supprimer tous les messages et les warnings
  5. Afficher une table des matières dans le rapport dynamique
  6. Insérer des références bibliographiques
  7. Mettre des résultats en cache
  8. Améliorer l’affichage des tables
  9. Affichage d’une table de données paginée
  10. Utilisez des modèles Rmarkdown
   

1. Afficher un résultat dans la partie texte.

Par exemple, dans votre code, vous calculez la moyenne d’une variable, et vous voulez écrire cette moyenne de façon automatique dans votre rapport. Pour cela, il faut stocker la moyenne dans un objet, ici nommé “moy_sepal_length”, et appeler ensuite cet objet dans le texte entre deux symboles de début et de fin de chunk (faites un copier-coller),  et précédé par la lettre r :

  R markdown   Le rendu: R markdown

 

2. Générer la date de façon automatique

Il est possible d’utiliser une fonction R dans l’en-tête. Cela permet notamment de générer la date de façon automatique, et de ne plus l’écrire en dur :   R markdown   Le rendu: R markdown  

3. Ne pas exécuter le code d’un chunk

Dans certaines situations, il peut arriver que l’on ne souhaite pas exécuter le code d’un chunk. Par exemple, vous pouvez avoir un code qui calcule la moyenne d’une variable, et sur certains jeux de données cette variable n’existe pas. Plutôt que de supprimer le chunk, vous pouvez simplement faire en sorte qu’il ne soit pas exécuté (ce qui entraînerait une erreur lors du passage du .Rmd en .html ou .docx). Pour cela, on utilise l’option “eval=FALSE“, que vous pouvez coupler avec echo=FALSE pour que même le code n’apparaisse pas.

  R markdown

 

4. Supprimer tous les messages et les warnings

Par exemple, lors du chargement des packages, R renvoie souvent des informations, qui sont intéressantes, mais que l’on ne souhaite pas forcément voir apparaître dans le rapport généré, comme cela, par exemple : R markdown   Dans ce cas là, on peut utiliser “message=FALSE“, et “warning=FALSEdans le chunck set-up : R markdown    

5.Afficher une table des matières dans le rapport dynamique

Si on utilise des titres et des sous titres dans le document Rmarkdown, on peut vouloir afficher la table des matières (ou Table Of Contents en anglais) dans le rapport dynamique qui sera généré. Pour cela, on ajoute, dans l’en-tête du document Rmarkdown “toc=TRUE” et on gère le niveau de détail de la table des matières par toc_depth, comme cela :

  R markdown

6. Insérer des références bibliographiques

J’ai écrit tout un article qui explique en détail comment le faire en utilisant Mendeley. Cliquez ici pour le consulter.  

7.Mettre des résultats en cache

Si le code d’un chunk prend beaucoup de temps de calcul, il peut être intéressant de ne pas relancer ce calcul à chaque fois qu’on génère le rapport dynamique. Par exemple, vous avez vu une faute d’orthographe dans votre rapport .docx, vous la corrigez sur le document Rmarkdown, et si un chunk prend 20 minutes de calcul, c’est un peu, voir carrément pénible ! Dans cette situation, vous pouvez utiliser l’option “cache=TRUE“. Lors de la première génération du document, le résultat du chunk sera mis en cache, et ce cache sera utilisé lors de la génération des rapports suivants.

Pour bien comprendre, vous pouvez générer deux fois de suite un document contenant le chunk suivant :   R markdown

 

8 Améliorer l’affichage des tables

Dans le premier article, je vous conseillais la fonction “kable” du package “knitr” pour afficher un tableau de données. Si vous générer votre rapport dynamique en format html, vous pouvez utiliser le package “kableExtra” pour améliorer l’affichage de cette table. Voici un exemple de ce qu’il est possible d’obtenir:

  R markdown   Pour plus de détails, consultez la vignette du package.  

9. Affichage d’une table de données paginée

Toujours lorsque votre rapport dynamique est destiné à un format en html, il est possible d’obtenir une table paginée en utilisant la fonction “paged_table” du package “rmarkdown”.
library(rmarkdown)
paged_table(iris)
R markdown    

10. Utilisez des modèles Rmarkdown

Il existe des modèles prédéfinis de documents en Rmarkdown. Ces modèles permettent de rédiger directement des documents avec un certain format. Par exemple, en installant le package “rticles”, vous aurez accès à des modèles Rmarkdown pour rédiger vos articles sous le format d’une vingtaine de journaux scientifiques. Le choix du modèle se fait lors de la création d’un nouveau document Rmarkdown, au niveau de l’option “From Template”.

  R markdown      

Et vous ? Avez vous un 11ème élément d’amélioration à me suggérer ? Si oui, faites le en commentaire et je le rajouterai à cette liste. En attendant, j’espère que ces 10 éléments permettront au plus grand nombre d’améliorer leurs documents dynamiques.

Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee 🙏 👉 Cliquez ici pour soutenir le blog Statistiques et Logiciel R Crédits photos : geralt  

Retrouvez ici 4 de mes articles les plus consultés :

4 réponses

  1. Vraiment grand merci Madame car ce sujet (R markdown) m’intéresse particulierement. L’article est bien détaillé et facilement comprehensif. Mais réellement j’ai toujours des difficultés. Je souhaiterais si possible de faire une vidéo pour associée à l’article.

  2. Bonjour,
    Je débute avec RMarkdown, et lorsque je veux faire apparaitre mes figures dans un document word, il y a automatiquement un saut de page entre mon titre et ma page de figure. Pourriez vous m’aider ?
    Merci d’avance pour votre aide

    1. Bonjour Camille,
      Malheureusement non je n’ai pas de réponse, je ne vois pas ce qui peut entrainer ce saut de page. Navrée de ne pas pouvoir vous aider.

      1. Bonjour Camille,
        vous pouvez essayer d’ajouter out.width=”75%” dans l’intitulé du chunk, comme cela : “`{r, fig.align=’center’, out.width=”75%”}, si cela n’est pas suffisant, essayez 50%. En espérant que ça marche!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *