Agrocampus Ouest - Rennes

Déroulement

  1. Préface

  2. Bases sur Markdown

  3. R code chunks

  4. Diffusion

  5. Avantages & inconvénients

  6. Sweave & Knitr

  7. Atelier pratique

Préface

Ca va nous arriver tous les jours…

  1. Manipulation de données

  2. Analyse de résultats

  3. Ecriture de rapports

  4. Quelque chose ne va pas dans vos données, vous voulez changer de variables, etc…

  5. C'est S.I.M.P.L.E : répétez les étapes de 1 à 4…..

Nous avons besoin d'un outil plus adapté et plus pratique !

Qu'est-ce que RMarkdown ?

  • Un outil pratique qui génère des documents reproductibles.
  • Markdown :
    • Du code HTML sans les balises pour plus de simplicité
    • Insertion de code HTML tout de même possible
  • R Markdown : Markdown + insertion de code chunks R

Pourquoi R Markdown :

  • Gestion de code, de sorties, de graphiques et de commentaires en UN SEUL DOCUMENT !
  • Facile à utiliser

Différentes versions…

  • Version 1 : basée sur les packages knitr et Markdown

  • Version 2 : basée sur knitr et la fonction pandoc : le tout intégré dans Rstudio

R Markdown génère des documents aux formats :

  • HTML
  • Adobe PDF
  • Office Word

Cela permet également de créer des présentations :

  • ioslides
  • Slidy
  • Beamer

Fonction pandoc

  • Fonction du package knitr
  • Conçue pour convertir aux différents formats
  • Idée de minimiser les appels de commande en une fonction unique :

  • Automatiquement prise en charge par Rstudio (exécution en arrière-plan) : aucun souci

Aide de la fonction pandoc du package knitr ==> Conversion d'un fichier Markdown aux différents formats : HTML, PDF

Présentations : Beamer (PDF) et Slidy (HTML)

Découvrons R Markdown

Documents HTML

Options de rendu

Bases de Markdown

Balises de code

Insertion de divers éléments :

  • Des tableaux :

  • Des images :

![nom image](/Users/...

[nom lien](http://...)

  • Des équations avec le symbole et le language LaTeX : $$ equation$$

\[\bar{\mu} = \frac{1}{n} \sum_{i=1}^{n} x_{i}\]

\[\Delta y = f'(x) \cdot \delta x\]

\[ \left ( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right ) \]

Lien utile pour LaTeX : latex

Insertion de Code Chunks

2 types de blocks de code :

  • Simple avec une largeur fixe et non exécuté par R :

  • Avec une spécification du language dans lequel codé (ici R) et donc exécuté :

eau <- read.csv("~/Desktop/eau.csv", sep=";")
dim(eau)
## [1] 512  24

Différents arguments de chunks

  • echo=TRUE : inclure ou pas le code R dans le document
  • eval=TRUE : exécuter ou pas le code R
  • message=TRUE : éviter d'être "spoilé" par les messages d'alertes de R
  • include=TRUE : aucune sortie n'est générée mais le code est toujours évalué et les graphiques tracés
  • warning=TRUE : enlever les messages warningsde R.

Des graphiques

plot of chunk multipleplotsplot of chunk multipleplotsplot of chunk multipleplots

Et même du Shiny !

Diffusion

Publiez vos rapports pour les diffuser : RPUBS

Créer votre propre espace de publication

Avantages et inconvénients

Intérêts & avantages

Traditionnellement :
  • Sauver vos sorties d'analyse R
  • Insertions des sorties à un rapport
  • Publication ou diffusion du rapport
PROBLEME :

utilisation d'un échantillon des données ou refaire l'analyse avec une autre variable…

Avec R Markdown :
  • Possibilité de régénération du rapport si on change les données ou le code
  • Synthaxe simple et accessible
  • Publication d'un contenu dynamique et intéractif

  • Utile pour présenter des résultats de manière propre et claire
  • Modification simple du contenu
  • utilisation simple et accessible à tous

Inconvénients :

  • Limites dans l'édition de documents (arguments de slides, etc.)
  • Editeur de fonction pas aussi complet que sur LaTeX
  • Parfois pas les mêmes commandes entre Beamer, iosslids, etc…
  • Peu de documentation

Et pour aller plus loin…

Sweave & Knitr

Sweave

  • Ancêtre de Knitr by Yihui Xie (Software Engineer at Rstudio) : knitr

  • Package de R :
    • Création de documents PDF
    • Language LaTeX
    • Language R : insertion de chunks
    • Language HTML (package R2HTML)
  • Bonnes bases de LaTeX et de HTML nécéssaires… : coût d'entrée élevé

  • Un même fichier : données, codes et commentaires

  • Le tout enrobé d'une mise en page épurée automatisée.

Le language LaTeX

Différences Knitr / Sweave

SWEAVE

  • Connaissance de différents languages
  • Pour d'autres formats : charger pleins d'autres packages
  • Moins simple et intuitif (beaucoup de balises…)
  • Plus modulable et "personnalisable"

KNITR

  • Intégration automatique de différents languages : LaTeX, HTML, Markdown.
  • Gestion plus simple des graphiques
  • Programmation plus simple que LaTeX
  • Moins d'options de mise en page

Coût d'entrée plus faible pour Markdown

Popularité de R markdown

Etude

  • Etude de satisfaction réalisée à UCLA (2014) : UCLA

Expérience

  • Echelle de Likert : -2(disagree) / +2(strongly agree)
  • Scores élevés ==> en faveur de R markdown
  • Questions 5 à 10 : Rôle de R dans le workflow d'analyse de données

Résultats

  • Etudiants favorables à l'utilisation de R et Rmd en fin de semestre (0.35 => 0.84)
  • Etudiants ont plus envie d'être lus
  • R rend plus facile la compilation de résutats
  • Un bénéfice pour eux et l'auditoir
  • R frustration diminue…

Un peu de pratique…

MERCI DE VOTRE ATTENTION