Unterschied zwischen R MarkDown und R NoteBook

135

Ich versuche auf hohem Niveau zu verstehen, was die Unterschiede zwischen R Markdownund sind R NoteBook. Ich weiß, dass sie miteinander zusammenhängen, aber ich möchte herausfinden, wie sie zusammenhängen. Mein Verständnis ist folgendes:

Ich weiß, dass R-Notebooks wirklich R-Markdown-Dokumente sind, aber ich bin verwirrt über die Terminologien.

Die neue Dateioption von RStudio bietet beides R Markdownund durch R NoteBookAuswahl einer der beiden Optionen wird eine R MarkdownDatei geöffnet , jedoch mit geringfügigen Unterschieden. Versuchen Sie also herauszufinden, warum es zwei Optionen gibt und was der Unterschied zwischen den beiden ist.

Geben Sie hier die Bildbeschreibung ein

Ich verstehe, dass R-Notebooks neu eingeführt wurden und R Markdown schon eine Weile da ist. Ein Teil der Verwirrung könnte darin liegen, dass ich R MarkdownR Notebook vor der Einführung noch nie verwendet habe, daher ist meine verwandte oder spezifischere Frage

Was macht R NoteBook anders als nur R MarkDown oder welche neuen Funktionen bringt R NoteBook?

Alle meine Treffer bei der Websuche deuten darauf hin, dass R Notebook R Markdown verwendet, aber ich habe keine Hilfe gefunden, was sich speziell zwischen den beiden unterscheidet.

PagMax
quelle
1
Ich benutze Knitr und LaTeX, also wähle ich die Option R Sweave. Nachdem ich RMarkdown nicht verwendet habe, kann ich nur sagen, dass LaTex alles kann, aber diese Leistung bringt Komplexität und eine Lernkurve mit sich. Es gibt auch eine riesige Community von Unterstützern und reichlich Bücher und Ressourcen.
lawyeR
1
danke @lawyeR. Ich mache mir keine Sorgen um Ressourcen und kann mich in R und LaTeX ziemlich gut zurechtfinden. Ich habe mich gefragt, was Sweave ist, aber ich dachte, ich werde mich später darum kümmern. Vielen Dank für Ihre Erkenntnisse dazu. Im
Moment betrachte
5
Und während Sie ein großer Fan des Lesens des Handbuchs sind, wie wäre es, wenn Sie die eigentliche Frage lesen, die Sie abgelehnt haben, und die speziell auf die in der Frage gestellten Fragen antworten, anstatt Material aus der Dokumentation zu entfernen?
PagMax

Antworten:

54

Soweit ich weiß und von meinem Setup gibt es keinen Codierungsunterschied. Der Unterschied liegt im Rendering. Die Dateierweiterung ist dieselbe.

Wenn Sie ein neues R-Notebook erstellen, wird html_notebookdie Ausgabeoption in der Kopfzeile hinzugefügt. Das ist der Unterschied. Sie können dann schnell eine Vorschau des Renderings anzeigen, ohne es stricken zu müssen. Außerdem wird die Vorschau bei jedem Speichern aktualisiert. In dieser Vorschau haben Sie jedoch keine Code-Ausgabe (keine Abbildungen, keine Tabellen ...) (zumindest in meinem Setup). Ohne html_notebookin der Ausgabe gibt es keine Schaltflächenvorschau

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, werden die Vorschauoptionen angezeigt, aber Sie können sie auch in einem beliebigen Format stricken. Es wird dem Header-Code hinzugefügt, wenn Sie dies tun.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie das jedoch nicht html_notebookin Ihrer Kopfzeile haben, können Sie Ihren Code nur stricken, um zu sehen, wie er aussieht (das gesamte Buch) (bitte ignorieren Sie die zusätzliche Standardoption, die ich mit dem Bild eingefügt habe).

Geben Sie hier die Bildbeschreibung ein

und die Option zur Vorschau wird nicht im Dropdown-Menü angezeigt

Geben Sie hier die Bildbeschreibung ein

Ansonsten funktioniert es genauso. Bei einigen Standardkonfigurationen ist die Ausgabe standardmäßig auch im Codeabschnitt ausgeblendet.

Beachten Sie, dass Sie mehrere Ausgabeoptionen in Ihrem Header mischen können, damit Sie die Vorschau beibehalten und Ihre Strickoptionen für den Export beibehalten können.

R. Prost
quelle
2
Als Add-On gibt es einen Fehler mit UTC (unter Berücksichtigung von Akzenten und nicht englischen Zeichen) mit dem Notebook. Es wird Ihre Ausgabe und Ihre Datei vermasseln ... also halten Sie sich besser an den Abschlag ... Dieser Punkt wird noch angesprochen (soweit ich weiß)
R. Prost
4
Ihre Antwort ist absolut das, was ich denke, der Unterschied ist, nachdem Sie sie einige Monate lang verwendet haben. Was mich schlägt ist, dass R Notebook alles ist und über dem, was R MarkDown ist. Warum dann mit R Markdown fortfahren? Sie können R-Notebook verwenden und direkt "stricken" anstatt "Vorschau" und Sie haben Ihre R-Markdown-Funktionalität!
PagMax
2
Ich denke eher ein Problem des Vermächtnisses, um die Leute, die Rmarkdown bereits verwenden, nicht zu verwirren. Außerdem hat die aktuelle Version von Notebook (oder R) den oben erwähnten Fehler, der mich daran hindert, ihn grundsätzlich zu verwenden. Mein Text wird auch in der Quelldatei durch Kauderwelsch ersetzt, je nachdem, welchen Weg ich benutze (von rmardown über Notebook oder Notebook bis rmarkdown). Also halte ich mich an den Abschlag, bis ich das beheben kann. Insbesondere, dass die Notizbuchvorschau für mich nicht so nützlich ist, nur eine Vorschau des Textes ohne die Diagramme usw., aber sie hat viel Potenzial.
R. Prost
40

Kürzlich habe ich diesen Beitrag gefunden, der mir das Problem R Markdown vs. R Notebook deutlich gemacht hat. http://uc-r.github.io/r_notebook

Hier sind einige relevante Zeilen:

Das Schreiben eines R-Notebook-Dokuments unterscheidet sich nicht vom Schreiben eines R-Markdown-Dokuments. Die Text- und Code-Chunk-Syntax unterscheidet sich nicht von dem, was Sie im R Markdown-Tutorial gelernt haben. Der Hauptunterschied besteht in der Interativität eines R-Notebooks. In erster Linie wird beim Ausführen von Blöcken in einem R-Markdown-Dokument der gesamte Code auf einmal an die Konsole gesendet , in einem R-Notebook wird jedoch jeweils nur eine Zeile gesendet . Dadurch kann die Ausführung gestoppt werden, wenn eine Zeile einen Fehler auslöst.

Außerdem gibt es dies bei Strick vs. Vorschau, wenn Sie ein R-Notebook in RStudio erstellen:

Die Vorschau zeigt Ihnen eine gerenderte HTML-Kopie des Inhalts des Editors. Folglich, im Gegensatz zu stricken , Vorschau keine R - Code Brocken läuft. Stattdessen wird die Ausgabe des Blocks angezeigt, als er zuletzt im Editor ausgeführt wurde.

Ich hoffe, Sie finden es nützlich.

Mani Tajaddini
quelle
Dieser zweite Teil ist besonders hilfreich, um den Unterschied zu verstehen!
Gaelgarcia
14

Einer der wichtigsten Unterschiede ergibt sich aus den obigen Antworten nicht ganz.

Aus Abschnitt 3.2.1.3 des Bookdown-Buches :

Es gibt auch einen Restart R and Run All ChunksEintrag im RunMenü der Editor-Symbolleiste, der Ihnen eine neue R-Sitzung bietet, bevor Sie alle Chunks ausführen. Dies ähnelt der KnitSchaltfläche, mit der eine separate R-Sitzung zum Kompilieren des Dokuments gestartet wird.

Mit anderen Worten, das Stricken schafft eine neue Umgebung und führt den gesamten Code dort aus. Im Gegensatz dazu verwendet das R-Notizbuch die globale Umgebung wie sie ist, um die HTML-Datei zu rendern. Tatsächlich werden bei einem R-Notizbuch Änderungen an der HTML-Datei jedes Mal vorgenommen, wenn das .RmdDokument gespeichert wird. Die PreviewSchaltfläche öffnet lediglich die HTML-Datei in ihrem aktuellen Zustand. Es wird kein Code ausgeführt. Previewbedeutet wörtlich, was es sagt: Es zeigt Ihnen nur, was bereits getan wurde.

Warum ist das wichtig? Wenn beispielsweise eine R-Notebook- .RmdDatei geöffnet wird, aber keine Codeblöcke ausgeführt werden, rendert die HTML-Datei den gesamten Markdown- und Eingabecode einwandfrei, es wird jedoch keine Ausgabe angezeigt. Angenommen, Sie definieren eine Variable xin der Konsole, jedoch nicht in einem Codeblock. Wenn Sie versuchen, xirgendwo in einem R-Notebook zu verwenden, funktioniert es einwandfrei. Die Vorschau des HTML-Dokuments funktioniert ebenfalls einwandfrei. Auf der anderen Seite wird beim Stricken des Dokuments ein Fehler "unbekannte Variable" generiert, da beim Stricken der gesamte Code in einer neuen Umgebung ausgeführt wird und die Variable xin der Markdown-Datei nirgendwo definiert wurde.

Sean Raleigh
quelle
7

Der Unterschied besteht darin, dass Sie in R Notebok Markdown- und R-Code-Chunks schreiben und diese direkt ausführen können, um sofort Ergebnisse zu sehen. Es ist eine Art Notizbuch für sich.

R Markdown dient dazu, gut aussehende Ausgaben in HTML, PDF oder einem Word-Dokument zu erstellen. Markdown und R-Code-Chunks kombinieren. Eine kurze Einführung und Motivation finden Sie hier .

Wenn Sie weitere Informationen zum Knitr-Paket erhalten möchten, klicken Sie hier.

Swolf
quelle
2
Nun, dies erklärt immer noch nicht, wie sich Markdown von Notebook unterscheidet. (Ich verstehe, dass Notebooks Markdown verwenden), aber R-Markdowns gab es, bevor R-Notebooks letztes Jahr eingeführt wurden. Welche neuen Funktionen in R-Notebooks waren früher nicht möglich, wenn nur R-Markdown verwendet wurde?
PagMax
3
@PagMax Ich denke, der Unterschied liegt in der Geschwindigkeit beim Rendern Ihrer HTML-Ausgabe aus Ihrer Rmarkdown-Datei. Wenn Sie mit knitr eine HTML-Ausgabe Ihres R-Markdowns erstellen möchten, dauert es einige Zeit, bis Sie Ihren gesamten Code "gestrickt" und die Ausgabe generiert haben. Um dies zu beschleunigen, können Sie Ihren Rmarkdown in HTML im Rnotebook-Modus in Rstudio anzeigen, indem Sie Ihre Ausgabe in "html_notebook" ändern. Anschließend können Sie einen Block erneut ausführen und dann Strg + Umschalt + k (PC) und drücken Das HTML wird sehr schnell aktualisiert.
chang02_23
1
Ich denke, das Problem, das das OP hat, ist, dass es keinen wirklich großen Unterschied zwischen den 2 gibt. Der Hauptunterschied, den ich sehe, den ich hauptsächlich beim Lesen der Antworten hier aufgegriffen habe, ist, dass RNB es Ihnen ermöglicht, einzelne Teile von R auszuführen Code unabhängig und "in Zeile", während RMD erfordert, dass Sie die gesamte Datei entweder rendern oder nicht rendern. Stellen Sie sich vor, Sie hätten eine riesige Datei und müssten nur ein kleines Diagramm überprüfen. RNB ist gut dafür. Das Rendern von RMD kann zu lange dauern und ist daher unpraktisch.
Bryan Goggin
@BryanGoggin Sie können die unabhängigen Chunks auch weiterhin in Rmd ausführen.
PagMax
5

Hier ist ein praktischer Unterschied, den ich gefunden habe:

Wenn Sie benötigen einen Teil des Textes auf Kommentar, RMarkdown Einsätze #in jeder Zeile des Textes, während RNotebook ordentlich Text zwischen einem einzigen Paar von kapselt <!--, --->Zeichen (wie in HTML - Dateien)

Man kann sagen, was für ein trivialer Unterschied. Aus diesem Grund verwende ich jetzt in RStudio für alle meine Dokumente immer R Notebook (anstelle von RMarkdown). In allem anderen scheinen sie gleich zu sein (zumindest für meine Bedürfnisse, wie zum Beispiel das Generieren von HTML- und PDF-Dateien).

Ansonsten werden meine Kommentare plötzlich zu Überschriften, wie unten:

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

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

"Gewöhnliche R-Markdown-Dokumente sind" gestrickt ", aber Notizbücher werden" in der Vorschau "angezeigt. Während die Notizbuchvorschau einem gerenderten R-Markdown-Dokument ähnelt, führt die Notizbuchvorschau keinen Ihrer R-Code-Blöcke aus."

Sibo Jiang
quelle
2
Genau. Die "Vorschau" -Funktion ist das einzige Unterscheidungsmerkmal zwischen den beiden. Ich frage mich, warum sie an Rmarkdown festhalten, wenn Rnotebook alles ist, was Rmarkdown mit einer zusätzlichen Vorschaufunktion ist.
PagMax
4

Ähnlichkeiten: Das R-Notizbuch und das R-Markdown-Dokument sind ziemlich ähnlich. Das Markdown-Format funktioniert in beiden Dateitypen. Beide Dateiformate können für die Kommunikation von Code zusammen mit Ergebnissen und Kommentaren an andere verwendet werden. Sie können das erstellte Dokument in die Ausgabeformate HTML, PDF und WORD stricken. Wenn der Code einen Fehler enthält, wird keine Ausgabe generiert. So führen Sie die Datei aus: STRG + UMSCHALT + K und fügen einen Codeblock ein: STRG + ALT + I.

R Markdown-Dokument: Das Rmd-Dokument kann über einen Assistenten konfiguriert werden und bietet Optionen für das Reproduzierbarkeitsdokument, Präsentationsfolien, eine glänzende App usw. sowie eine Option zum Erstellen eines Dokuments aus einer Vorlage. Wenn Sie den Code ändern, wird die Ausgabe in der Rmd-Ausgabe ausgeführt. Es bietet keine Option zur Vorschau des Dokuments. Der YAML-Header hat das Ausgabeformat: output: html_document

R-Notebook-Dokument: Das R nb-Dokument wird direkt gestartet und es wird kein Assistent (wie im Fall von .RMD) angezeigt. Zusammen mit der Notebook-Datei wird eine zusätzliche HTML-Datei mit der Erweiterung * .nb.html generiert. Das Notebook verfügt über die Option zur Vorschau. Wenn Code geändert oder bearbeitet wird, wird die neue Ausgabe nicht angezeigt. Die Ausgabe wird im Code-Editor selbst angezeigt. Was auch immer die alte Ausgabe war, sie wird nur gerendert. Aus der Codeänderung wird keine neue Ausgabe generiert. Um die Code-Ausgabe anzuzeigen, müssen wir den Block ausführen, und dann wird er in der Ausgabe angezeigt. Der YAML-Header hat folgende Ausgabe: output: html_notebook

YAML-Header : Wenn wir den YAML-Header von einer Datei in eine andere ändern, ändert sich der Dokumenttyp. Sie haben beispielsweise ein R-Notizbuch mit einem YAML-Header als html_notebook. Wenn Sie den YAML-Header ändern, wird Ihr R-Notizbuch in ein R-Markdown-Dokument konvertiert.

Wenn Sie eines auswählen müssen, wählen Sie das RMarkdown- Dokument, da es mehr Kontrolle bietet und Dokumente aktualisiert, sobald Sie es stricken.

Saurabh Jain
quelle
3

Von jrnold :

R-Notebook-Dateien zeigen die Ausgabe im Editor an, während die Konsole ausgeblendet wird. R-Markdown-Dateien zeigen die Ausgabe in der Konsole und nicht die Ausgabe im Editor. Sie unterscheiden sich im Wert der Ausgabe in ihren YAML-Headern.
Der YAML-Header für das R-Notebook enthält die Zeile:

---
ouptut: html_notebook
---

Der YAML-Header für die R-Markdown-Datei enthält die Zeile:

ouptut: html_document

Durch Kopieren des YAML-Headers von einem R-Notebook in eine R-Markdown-Datei wird er in eine R-Markdown-Datei geändert und umgekehrt. Das Ändern des Werts von outputin Dies liegt insbesondere daran, dass die RStudio-IDE beim Öffnen und das rmarkdown- Paket beim Stricken den YAML-Header einer Datei und insbesondere den Wert des outputSchlüssels im YAML-Header verwenden, um zu bestimmen, um welche Art von Dokument es sich handelt ist.

Yang Dai
quelle