Différence entre R MarkDown et R NoteBook

136

J'essaie de comprendre à un niveau élevé quelles sont les différences entre R Markdownet R NoteBook. Je sais qu'ils sont interdépendants, mais j'aimerais savoir comment ils sont liés. Ma compréhension est la suivante:

Je sais que les cahiers R sont vraiment des documents R Markdown, mais je suis confus au sujet des terminologies.

L'option de nouveau fichier RStudio a les deux R Markdownet R NoteBooket la sélection de l'un ou l'autre ouvre un R Markdownfichier mais avec des différences mineures. Alors, essayez simplement de comprendre pourquoi il y a deux options et quelle est la différence entre les deux?

entrez la description de l'image ici

Je comprends que R Notebooks est nouvellement introduit et R Markdown est là depuis un certain temps. Une partie de la confusion pourrait être due au fait que je n'avais jamais utilisé R Markdownavant l'introduction de R Notebook, donc ma question connexe ou plus spécifique est

Que fait R NoteBook différemment de la simple utilisation de R MarkDown ou quelles sont les nouvelles fonctionnalités apportées par R NoteBook?

Tous mes résultats sur la recherche Web indiquent que R Notebook utilise R Markdown, mais je n'ai trouvé aucune aide sur ce qui est spécifiquement différent entre les deux.

PagMax
la source
1
J'utilise knitr et LaTeX, donc je choisis l'option R Sweave. N'ayant pas utilisé RMarkdown, tout ce que je peux dire, c'est que LaTex peut tout faire, mais cette puissance apporte de la complexité et une courbe d'apprentissage. En outre, il existe une énorme communauté de supporters et de nombreux livres et ressources.
lawyeR
1
merci @lawyeR. Je ne suis pas préoccupé par les ressources et je peux assez bien trouver mon chemin dans R et LaTeX. Je me suis demandé ce qu'était Sweave mais je pensais que je m'inquiéterais plus tard. Merci pour vos idées à ce sujet. pour l'instant, je regarde juste les différences de haut niveau entre ces différentes saveurs de R.
PagMax
5
Et même si vous êtes un grand fan de la lecture du manuel, que diriez-vous de lire la question réelle que vous avez déclinée et de répondre spécifiquement à ce qui est posé dans la question au lieu de jeter des éléments de la documentation?
PagMax

Réponses:

55

Pour autant que je sache et d'après ma configuration, il n'y a pas de différence de codage. La différence réside dans le rendu. L'extension de fichier est la même.

Lorsque vous créez un nouveau bloc-notes R, il ajoute html_notebookl'option de sortie dans l'en-tête. Voilà la différence. Vous pouvez ensuite prévisualiser rapidement le rendu sans avoir à le tricoter. Il actualise également l'aperçu à chaque fois que vous enregistrez. Cependant, dans cet aperçu, vous n'avez pas la sortie de code (pas de chiffres, pas de tableaux ..) (du moins dans ma configuration). Sans html_notebookdans la sortie, il n'y a pas d'aperçu du bouton

entrez la description de l'image ici

comme vous pouvez le voir, les options d'aperçu s'affichent, mais vous pouvez également le tricoter dans le format de votre choix. Il l'ajoutera au code d'en-tête lorsque vous le faites.

entrez la description de l'image ici

Cependant, si vous ne l'avez pas html_notebookdans votre en-tête, vous ne pouvez tricoter votre code que pour voir à quoi il ressemble (le livre entier) (veuillez ignorer l'option par défaut supplémentaire que j'ai mise avec l'image)

entrez la description de l'image ici

et l'option de prévisualisation ne s'affiche pas dans le menu déroulant

entrez la description de l'image ici

Sinon, cela fonctionne de la même manière. Pour certaines configurations par défaut, la sortie est également masquée par défaut dans la section de code.

Notez que vous pouvez mélanger plusieurs options de sortie dans votre en-tête afin de pouvoir conserver l'aperçu et conserver vos options de tricot pour l'exportation.

R. Prost
la source
2
en complément, il y a un bug avec UTC (prise en compte des accents et des caractères non anglais) avec le notebook. Cela va bousiller votre sortie et votre fichier ... alors mieux vaut s'en tenir à la démarque ... Ce point est toujours en cours de traitement (pour autant que je sache)
R. Prost
4
Votre réponse est absolument ce que je pense que la différence est après l'avoir utilisé pendant quelques mois. Ce qui me bat, c'est que R Notebook est tout et au-dessus de ce qu'est R MarkDown. Pourquoi continuer avec R Markdown alors? Vous pouvez utiliser le cahier R et directement «tricoter» au lieu de «prévisualiser» et vous avez votre fonctionnalité R Markdown !!
PagMax
2
Plus un problème d'héritage je pense, pour ne pas confondre les gens qui utilisent déjà Rmarkdown. De plus, la version actuelle de notebook (ou R) a ce bug que j'ai mentionné ci-dessus qui m'empêche de l'utiliser fondamentalement. Mon texte est également remplacé par charabia dans le fichier source en fonction de la manière dont j'utilise (de rmardown à notebook ou notebook à rmarkdown). Je m'en tiens donc à la démarque jusqu'à ce que je puisse résoudre ce problème. Surtout que l'aperçu du notebook n'est pas très utile pour moi, il suffit de prévisualiser le texte sans les tracés etc. mais il a beaucoup de potentiel.
R. Prost
42

Récemment, j'ai trouvé cet article qui m'a éclairé sur le problème R Markdown vs R Notebook. http://uc-r.github.io/r_notebook

Voici quelques lignes pertinentes:

L'écriture d'un document R Notebook n'est pas différente de l'écriture d'un document R Markdown. La syntaxe des blocs de texte et de code ne diffère pas de ce que vous avez appris dans le didacticiel R Markdown. La principale différence réside dans l'interactivité d'un R Notebook. Principalement que lors de l'exécution de morceaux dans un document R Markdown, tout le code est envoyé à la console à la fois , mais dans un R Notebook, une seule ligne à la fois est envoyée . Cela permet à l'exécution de s'arrêter si une ligne génère une erreur.

Il y a aussi ceci sur tricot vs aperçu lorsque vous créez un bloc-notes R dans RStudio:

L'aperçu vous montre une copie HTML rendue du contenu de l'éditeur. Par conséquent, contrairement à Knit , Preview n'exécute aucun morceau de code R. Au lieu de cela, la sortie du bloc lors de sa dernière exécution dans l'éditeur est affichée.

J'espère que vous le trouverez utile.

Mani Tajaddini
la source
Cette deuxième partie est particulièrement utile pour comprendre la différence!
gaelgarcia
15

L'une des différences les plus importantes n'est pas tout à fait claire à partir des réponses ci-dessus.

De la section 3.2.1.3 du livre Bookdown :

Il y a aussi un Restart R and Run All Chunksélément dans le Runmenu de la barre d'outils de l'éditeur, qui vous donne une nouvelle session R avant d'exécuter tous les morceaux. Ceci est similaire au Knitbouton, qui lance une session R distincte pour compiler le document.

En d'autres termes, le tricot crée un nouvel environnement et y exécute tout le code. En revanche, le R Notebook utilise l'environnement global tel quel pour rendre le fichier HTML. En fait, pour un bloc-notes R, les modifications apportées au fichier HTML se produisent à chaque fois que le .Rmddocument est enregistré. Le Previewbouton ouvre simplement le fichier HTML dans son état actuel. Aucun code n'est exécuté. Previewsignifie littéralement ce qu'il dit: il vous montre simplement ce qui a déjà été fait.

Pourquoi est-ce important? Par exemple, si un .Rmdfichier R Notebook est ouvert, mais qu'aucun morceau de code n'est exécuté, le fichier HTML rendra tout le code de démarque et d'entrée très bien, mais aucune sortie n'apparaîtra. Ou, supposons que vous définissiez une variable xdans la console, mais pas dans un bloc de code. Si vous essayez d'utiliser xquelque part dans un R Notebook, cela fonctionnera très bien. La prévisualisation du document HTML fonctionnera également très bien. D'un autre côté, tricoter le document générera une erreur de "variable inconnue" car le tricot exécute tout le code dans un nouvel environnement, et la variable xn'a jamais été définie dans le fichier de démarque nulle part.

Sean Raleigh
la source
7

La différence est que dans R Notebok, vous pouvez écrire des blocs Markdown et R-code et les exécuter directement et voir les résultats immédiatement. C'est une sorte de cahier pour vous-même.

R Markdown est là pour créer de jolis résultats au format HTML, PDF ou Word. Combinant Markdown et R-Code-Chunks. Une brève introduction et une motivation peuvent être trouvées ici .

Si vous souhaitez obtenir plus d'informations sur le package knitr, cliquez ici.

Swolf
la source
2
Eh bien, cela n'explique toujours pas en quoi Markdown est différent de Notebook. (Je comprends que le bloc-notes utilise le démarquage), mais le démarquage R existait avant les carnets R ont été introduits l'année dernière. Alors, quelles sont les nouvelles fonctionnalités du notebook R qui n'étaient auparavant pas possibles en utilisant simplement R Markdown?
PagMax
3
@PagMax Je pense que la différence réside dans la vitesse de rendu de votre sortie html à partir de votre fichier Rmarkdown. Lorsque vous voulez utiliser knitr pour produire une sortie html de votre markdown R, il faut un peu de temps pour «tricoter» tout votre code et générer la sortie. Pour l'accélérer, vous pouvez afficher votre Rmarkdown en html en utilisant Rnotebook "mode" dans Rstudio en changeant votre sortie en "html_notebook", il vous permet d'exécuter une nouvelle exécution d'un morceau, puis de faire ctrl + shift + k (pc) et le html se rafraîchit très rapidement.
chang02_23
1
Je pense que le problème rencontré par l'OP est qu'il n'y a pas vraiment de différence énorme entre les 2. La principale différence que je vois, que j'ai surtout relevée en lisant les réponses ici, est que RNB vous permet d'exécuter des morceaux uniques de R code indépendamment et "en ligne" tandis que RMD vous oblige à rendre ou non le fichier entier. Imaginez si vous aviez un gros fichier et que vous aviez juste besoin de vérifier sur un petit graphique. RNB est bon pour ça. Le rendu de RMD peut prendre trop de temps et n'est donc pas pratique.
Bryan Goggin
@BryanGoggin Vous pouvez également exécuter les blocs indépendants dans Rmd.
PagMax
5

Voici une différence pratique que j'ai trouvée:

Lorsque vous avez besoin de commenter une partie du texte, des inserts RMarkdown #dans chaque ligne de votre texte, alors que RNotebook encapsule parfaitement texte entre une seule paire de <!--, --->signes (comme dans les fichiers html)

On peut dire, quelle différence insignifiante. Cependant, juste à cause de cela, j'utilise désormais toujours R Notebook (au lieu de RMarkdown) dans RStudio pour tous mes documents. Dans tout le reste, ils semblent identiques (pour mes besoins, au moins, tels que la génération de html et de pdf)

Sinon, mes commentaires deviennent soudainement des en-têtes, comme ci-dessous:

# This part is commented out, but will show as Heading 1 font text
IVIM
la source
4

http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file

"Les documents R Markdown ordinaires sont" tricotés ", mais les blocs-notes sont" prévisualisés ". Alors que l'aperçu du bloc-notes ressemble à un document R Markdown rendu, l'aperçu du bloc-notes n'exécute aucun de vos morceaux de code R"

Sibo Jiang
la source
2
Je suis d'accord. La fonction «aperçu» est le seul différenciateur entre les deux. Je me demande pourquoi ils s'accrochent à Rmarkdown alors que Rnotebook est tout ce que Rmarkdown est avec une fonction de prévisualisation supplémentaire.
PagMax
4

Similitudes: Le bloc-notes R et le document R Markdown sont assez similaires. Le format Markdown fonctionne dans les deux types de fichiers. Les deux formats de fichier peuvent être utilisés pour communiquer le code avec les résultats et les commentaires aux autres. On peut choisir de tricoter le document créé aux formats de sortie HTML, PDF et WORD. S'il y a une erreur dans le code, la sortie ne sera pas générée. Pour exécuter le fichier: CTRL + SHIFT + K et pour insérer un bloc de code: CTRL + ALT + I.

Document R Markdown: Le document Rmd peut être configuré via un assistant et dispose d'options pour le document de reproductibilité, les diapositives de présentation, l'application brillante, etc. et une option pour créer un document à partir d'un modèle. Si vous modifiez le code, la sortie est exécutée dans la sortie Rmd. Il n'offre pas la possibilité de prévisualiser le document. L'en-tête YAML a le format de sortie comme: output: html_document

Document R Notebook: Le document R nb est lancé directement et aucun assistant (comme dans le cas de .RMD) n'apparaît. Avec le fichier notebook, un fichier html supplémentaire avec l'extension * .nb.html est généré. Le bloc-notes a la possibilité de prévisualiser. Si un code est modifié ou édité, la nouvelle sortie n'est pas affichée. La sortie est affichée dans l'éditeur de code lui-même. Quelle que soit l'ancienne sortie, elle est uniquement rendue. Aucune nouvelle sortie n'est générée à partir du changement de code. Afin d'afficher la sortie du code, nous devons exécuter le bloc, puis il apparaîtra dans la sortie. L'en-tête YAML a une sortie comme: output: html_notebook

En-tête YAML : Si nous changeons l'en-tête YAML d'un fichier à un autre, cela changera le type du document. Par exemple, vous avez un bloc-notes R dont l'en-tête YAML est html_notebook. Si vous modifiez l'en-tête YAML, votre bloc-notes R sera converti en document R Markdown.

Si vous devez en choisir un, utilisez le document RMarkdown car il offre plus de contrôle et met à jour les documents dès que vous le tricotez.

Saurabh Jain
la source
3

De jrnold :

Les fichiers notebook R affichent la sortie dans l'éditeur, tout en masquant la console. Les fichiers de démarque R affichent la sortie à l'intérieur de la console, et n'affiche pas la sortie dans l'éditeur. Ils diffèrent par la valeur de la sortie dans leurs en-têtes YAML.
L'en-tête YAML du bloc-notes R aura la ligne,

---
ouptut: html_notebook
---

L'en-tête YAML pour le fichier de démarque R aura la ligne,

ouptut: html_document

La copie de l'en-tête YAML d'un bloc-notes R vers un fichier de démarquage R le change en un fichier de démarquage R, et vice-versa. Plus précisément, changer la valeur de outputen Ceci est dû au fait que l'IDE RStudio lors de l'ouverture et le package rmarkdown lors du tricot utilise l'en-tête YAML d'un fichier, et en particulier la valeur de la outputclé dans l'en-tête YAML, pour déterminer quel type de document il est.

Yang Dai
la source