web-dev-qa-db-fra.com

Relation entre R Markdown, Knitr, Pandoc et Bookdown

Quelle est la relation entre les fonctionnalités de R Markdown, Knitr, Pandoc et Bookdown?

En particulier, quelle est la "division du travail" entre ces packages lors de la conversion de documents de balisage avec code R incorporé (par exemple, .Rnw ou .Rmd) en résultats finaux (par exemple, .pdf ou .html)? Et si Knitr est utilisé pour traiter RMarkdown, que fait le package rmarkdown et en quoi est-il différent du package markdown package?

70
RobinL

Pandoc

Pandoc est un convertisseur de documents. Il peut convertir un certain nombre de formats de balisage différents en de nombreux autres formats, tels que .doc, .pdf etc.

Pandoc est un outil de ligne de commande sans interface graphique. Il s’agit d’un logiciel indépendant, distinct de R. Cependant, il est fourni avec R Studio car rmarkdown s’appuie sur celui-ci pour la conversion de documents.

Pandoc convertit non seulement des documents, mais ajoute également des fonctionnalités au-dessus du langage de démarcation de base pour lui permettre de prendre en charge des sorties plus complexes.

R Markdown

R Markdown est basé sur le démarquage:

Markdown (langage de balisage)

Markdown est un langage de balisage léger avec une syntaxe de mise en forme de texte brut conçue pour pouvoir être convertie au format HTML et à de nombreux autres formats. Un fichier de démarquage est un fichier de texte brut portant généralement l'extension .md.

Comme d'autres langages de balisage comme HTML et Latex, il est complètement indépendant de R.

Il n’existe pas de norme de Markdown clairement définie. Cela a entraîné une fragmentation du fait que différents fournisseurs écrivent leurs propres variantes du langage pour corriger les failles ou ajouter des fonctionnalités manquantes.

Markdown (package R)

markdown est un paquet R qui convertit .Rmd fichiers en HTML. C'est le prédécesseur de rmarkdown , qui offre beaucoup plus de fonctionnalités. Son utilisation n'est plus recommandée.

R Markdown (langage de balisage)

R Markdown est une extension de la syntaxe de markdown. R Les fichiers Markdown sont des fichiers de texte brut portant généralement l’extension de fichier .Rmd. Ils sont écrits en utilisant une extension de la syntaxe de démarquage qui permet au code R de s'y incorporer de manière à pouvoir être exécuté ultérieurement.

Comme ils sont censés être traités par le paquetage rmarkdown, il est possible d'utiliser syntaxe Pandoc markdown dans le cadre d'un fichier de démarquage R. Ceci est une extension de la syntaxe de démarquage d'origine qui fournit des fonctionnalités supplémentaires telles que HTML brut/Latex et les tableaux.

R Markdown (package)

Le paquet R rmarkdown est une bibliothèque qui traite et convertit .Rmd fichiers dans un certain nombre de formats différents.

La fonction principale est rmarkdown::render qui se tient sur les épaules du pandoc . Cette fonction 'restitue le fichier d’entrée au format de sortie spécifié en utilisant pandoc. Si l’entrée nécessite un tricotage, alors knitr::knit est appelé avant pandoc.

L'objectif du paquet RMarkdown est simplement fournir des valeurs par défaut raisonnablement correctes et une interface conviviale pour personnaliser les options Pandoc. .

Les métadonnées YAML vues en haut des fichiers RMarkdown sont spécifiquement destinées à transmettre les options à rmarkdown::render, pour guider le processus de construction.

Notez que RMarkdown ne traite que de la syntaxe de démarquage. Si vous voulez convertir un .Rhtml ou un .Rnw, vous devez utiliser les fonctions pratiques intégrées à Knitr, telles que knitr::knit2html et knitr:knit2pdf

Knitr

Knitr prend un document en texte brut avec du code incorporé, l'exécute et "intègre" les résultats dans le document.

Par exemple, il convertit

La fonction principale est knitr::knit et par défaut, le document d’entrée sera examiné et le type recherché - Rnw, Rmd, etc.

Cette fonction principale remplit trois rôles: - Un analyseur source, qui examine le document d'entrée et détecte les parties du code que l'utilisateur souhaite évaluer. - Un évaluateur de code, qui évalue ce code - Un rendu de sortie, qui écrit les résultats de l'évaluation dans le document dans un format interprétable par le type de sortie brut. Par exemple, si le fichier d'entrée est un fichier .Rmd, le rendu de la sortie marque la sortie de l'évaluation du code dans .md _ format.

Conversion entre les formats de document

Knitr ( ne convertit pas entre les formats de document - comme la conversion d'un .md dans une .html. Cependant, il fournit certaines fonctions pratiques pour vous aider à utiliser d'autres bibliothèques à cette fin. Si vous utilisez le paquet rmarkdown, vous devriez ignorer cette fonctionnalité car elle a été remplacée par rmarkdown::render.

Un exemple est knitr:knit2pdf qui va: 'Tricoter le document d'entrée Rnw ou Rrst, et compiler pour PDF en utilisant texi2pdf ou rst2pdf'.

Une source potentielle de confusion est knitr::knit2html, qui "est une fonction pratique permettant de tricoter la source de démarquage et d’appeler markdown::markdownToHTML pour convertir le résultat en HTML. " Ceci est maintenant une fonctionnalité héritée, car le package markdown a été remplacé par le package rmarkdown. Voir cette note .

Bookdown

Le paquet bookdown est construit sur R Markdown et hérite de la simplicité de la syntaxe Markdown, ainsi que de la possibilité de plusieurs types de formats de sortie (PDF/HTML/Word /…).

Il offre des fonctionnalités telles que la sortie HTML multi-pages, la numérotation et le référencement croisé des figures/tableaux/sections/équations, l'insertion de pièces/annexes et l'importation du style GitBook ( https://www.gitbook.com ) pour créer des pages de livre HTML élégantes et attrayantes.

96
RobinL