Differenza tra R MarkDown e R NoteBook


136

Sto cercando di capire ad alto livello quali sono le differenze tra R Markdowne R NoteBook. So che sono correlati, ma vorrei capire come sono correlati. La mia comprensione è questa:

So che i taccuini R sono in realtà documenti R Markdown ma sono confuso sulle terminologie.

Opzione nuovo file RStudio ha sia R Markdowned R NoteBooke selezionando una di esse si apre un R Markdownfile, ma con piccole differenze. Quindi, solo cercando di capire perché ci sono due opzioni e qual è la differenza tra i due?

inserisci qui la descrizione dell'immagine

Capisco che i notebook R sono stati recentemente introdotti e R Markdown è lì da un po '. Parte della confusione potrebbe essere dovuta al fatto che non avevo mai usato R Markdownprima che R Notebook fosse introdotto, quindi la mia domanda correlata o più specifica è

Cosa sta facendo R NoteBook in modo diverso rispetto all'utilizzo di R MarkDown o quali nuove funzionalità offre R NoteBook?

Tutti i miei risultati nella ricerca web indicano che R Notebook usa R Markdown ma non ho trovato alcun aiuto su ciò che è specificamente diverso tra i due.


1
Uso knitr e LaTeX, quindi scelgo l'opzione R Sweave. Non avendo usato RMarkdown, tutto quello che posso dire è che LaTex può fare qualsiasi cosa, ma quel potere porta con sé complessità e una curva di apprendimento. Inoltre, esiste un'enorme comunità di sostenitori e ampi libri e risorse.
lawyeR,

1
grazie @lawyeR. Non sono preoccupato per le risorse e riesco a orientarmi abbastanza bene su R e LaTeX. Mi chiedevo cosa fosse Sweave ma pensavo che mi sarei preoccupato più tardi. Grazie per i tuoi approfondimenti su questo. per ora sto solo osservando le differenze di massimo livello tra questi vari gusti di R.
PagMax,

5
E mentre sei un grande fan della lettura del manuale, che ne dici di leggere la domanda reale che hai annullato il voto e di rispondere in modo specifico a ciò che viene posto nella domanda invece di scaricare materiale dalla documentazione?
PagMax,

Risposte:


55

Per quanto ho capito e dalla mia configurazione non vi è alcuna differenza di codifica. La differenza sta nel rendering. L'estensione del file è la stessa.

Quando crei un nuovo R Notebook, questo aggiunge html_notebookl'opzione di output nell'intestazione. Questa è la differenza È quindi possibile visualizzare in anteprima il rendering rapidamente senza doverlo lavorare a maglia. Aggiorna anche l'anteprima ogni volta che salvi. Comunque in quell'anteprima non hai l'output del codice (niente figure, niente tabelle ..) (almeno nella mia configurazione). Senza html_notebooknell'output non è presente l'anteprima del pulsante

inserisci qui la descrizione dell'immagine

come puoi vedere, vengono visualizzate le opzioni di anteprima, ma puoi anche lavorarle in qualsiasi formato tu voglia. Lo aggiungerà al codice dell'intestazione quando lo fai.

inserisci qui la descrizione dell'immagine

Tuttavia, se non lo hai html_notebooknell'intestazione, puoi solo lavorare a maglia il tuo codice per vedere come appare (l'intero libro) (ignora l'opzione predefinita aggiuntiva che ho inserito con l'immagine)

inserisci qui la descrizione dell'immagine

e l'opzione per l'anteprima non viene visualizzata nel menu a discesa

inserisci qui la descrizione dell'immagine

Altrimenti funziona allo stesso modo. Per alcune configurazioni predefinite, anche l'output è nascosto per impostazione predefinita nella sezione del codice.

Nota che puoi mescolare diverse opzioni di output nell'intestazione in modo da poter mantenere l'anteprima e conservare le tue opzioni di maglia per l'esportazione.


2
come componente aggiuntivo c'è un bug con UTC (prendendo in considerazione accenti e caratteri non inglesi) con il notebook. Rovinerà il tuo output e il tuo file ... quindi meglio attenersi al markdown ... Questo punto è ancora stato affrontato (per quanto ne so)
R. Prost

4
La tua risposta è assolutamente ciò che penso che sia la differenza dopo averlo usato per alcuni mesi. Quello che mi batte è R Notebook è tutto e soprattutto ciò che R MarkDown è. Perché continuare con R Markdown allora? Puoi usare R notebook e direttamente "maglia" invece di "preview" e hai la tua funzionalità R Markdown !!
PagMax,

2
Penso che sia un problema di eredità, per non confondere le persone che già usano Rmarkdown. Inoltre l'attuale versione di Notebook (o R) ha quel bug che menziono sopra che mi impedisce di usarlo sostanzialmente. Il mio testo viene sostituito con incomprensibile anche nel file sorgente a seconda del modo in cui utilizzo (da rmardown a notebook o notebook a rmarkdown). Quindi mi attengo al markdown fino a quando non riesco a risolvere il problema. Soprattutto che l'anteprima del quaderno non è molto utile per me, basta vedere l'anteprima del testo senza le trame, ecc. Ma ha molto potenziale.
R. Prost,

41

Recentemente ho trovato questo post che mi ha chiarito il problema R Markdown vs. R Notebook. http://uc-r.github.io/r_notebook

Ecco alcune righe pertinenti:

La scrittura di un documento R Notebook non è diversa dalla scrittura di un documento R Markdown. La sintassi del blocco di testo e di codice non differisce da quanto appreso nel tutorial di R Markdown. La differenza principale sta nell'interattività di un R Notebook. Principalmente che quando si eseguono blocchi in un documento R Markdown, tutto il codice viene inviato alla console contemporaneamente , ma in un R Notebook viene inviata solo una riga alla volta . Ciò consente di interrompere l'esecuzione se una riga genera un errore.

Inoltre c'è questo su knit vs. preview quando crei un R Notebook in RStudio:

L'anteprima mostra una copia HTML renderizzata del contenuto dell'editor. Di conseguenza, a differenza di Knit , Preview non esegue blocchi di codice R. Al contrario, viene visualizzato l'output del blocco quando è stato eseguito l'ultima volta nell'editor.

Spero lo trovi utile.


Quella seconda parte è particolarmente utile per capire la differenza!
gaelgarcia,

15

Una delle differenze più importanti non è completamente chiara dalle risposte di cui sopra.

Dalla sezione 3.2.1.3 del libro Bookdown :

C'è anche una Restart R and Run All Chunksvoce nel Runmenu sulla barra degli strumenti dell'editor, che ti dà una nuova sessione R prima di eseguire tutti i blocchi. Questo è simile al Knitpulsante, che avvia una sessione R separata per compilare il documento.

In altre parole, lavorare a maglia crea un nuovo ambiente ed esegue tutto il codice lì. Al contrario, R Notebook utilizza l'ambiente globale per eseguire il rendering del file HTML. In effetti, per un R Notebook, le modifiche al file HTML avvengono ogni volta che il .Rmddocumento viene salvato. Il Previewpulsante apre semplicemente il file HTML nel suo stato corrente. Non viene eseguito alcun codice. Previewsignifica letteralmente quello che dice: ti mostra solo cosa è già stato fatto.

Perché è importante? Ad esempio, se .Rmdviene aperto un file R Notebook , ma non vengono eseguiti blocchi di codice, il file HTML renderà tutto il markdown e il codice di input perfetti, ma non verrà visualizzato alcun output. Oppure, supponiamo di definire alcune variabili xnella Console, ma non in un blocco di codice. Se si tenta di utilizzare xda qualche parte in un R Notebook, funzionerà perfettamente. Anche l'anteprima del documento HTML funzionerà bene. D'altra parte, il lavoro a maglia del documento genererà un errore "variabile sconosciuta" perché il lavoro a maglia esegue tutto il codice in un nuovo ambiente e la variabile xnon è mai stata definita nel file di markdown da nessuna parte.


7

La differenza è che in R Notebok è possibile scrivere blocchi Markdown e R-code ed eseguirli direttamente e vedere subito i risultati. È una specie di Notebook per te.

R Markdown è lì per creare output di bell'aspetto in html, pdf o un documento Word. Combinazione di blocchi Markdown e R-Code. Una breve introduzione e motivazione possono essere trovate qui .

Se vuoi avere maggiori informazioni sul pacchetto knitr clicca qui.


2
Bene, questo non spiega ancora in che modo Markdown sia diverso da Notebook. (Capisco che il notebook usa il markdown) ma il markdown R esisteva prima dei notebook R dove erano stati introdotti l'anno scorso. Quindi quali sono le nuove funzionalità di R notebook che prima non erano possibili semplicemente usando il markdown R?
PagMax,

3
@PagMax Penso che la differenza risieda nella velocità nel rendering dell'output HTML dal file Rmarkdown. Quando vuoi usare knitr per produrre un output html del tuo markdown R, ci vuole un po 'di tempo per "lavorare a maglia" tutto il tuo codice e generare l'output. Per velocizzarlo, puoi visualizzare il tuo Rmarkdown in html usando la "modalità" di Rnotebook in Rstudio modificando l'output in "html_notebook", ti consente di eseguire una nuova esecuzione di un blocco, quindi fai ctrl + shift + k (pc) e l'html si aggiorna molto rapidamente.
chang02_23,

1
Penso che il problema che l'OP sta avendo è che non c'è davvero una grande differenza tra i 2. La differenza principale che vedo, che ho colto principalmente leggendo le risposte qui, è che RNB ti consente di eseguire singoli pezzi di R codice in modo indipendente e "in linea" mentre RMD richiede il rendering o meno del rendering dell'intero file. Immagina se avessi un file enorme e avessi solo bisogno di controllare un piccolo grafico. RNB è buono per questo. Il rendering di RMD potrebbe richiedere troppo tempo ed è quindi scomodo.
Bryan Goggin l'

@BryanGoggin Puoi comunque eseguire anche i blocchi indipendenti in Rmd.
PagMax,

5

Ecco una differenza pratica che ho trovato:

Quando avete bisogno di commentare una parte di testo, inserti RMarkdown #in ogni riga del testo, mentre RNotebook racchiude ordinatamente testo tra una singola coppia di <!--, --->segni (come nel file HTML)

Si potrebbe dire, che banale differenza. Tuttavia, proprio per questo, ora uso sempre R Notebook (anziché RMarkdown) in RStudio per tutti i miei documenti. In tutto il resto, sembrano uguali (per le mie esigenze, almeno, come la generazione di HTML e PDF)

Altrimenti, i miei commenti diventano improvvisamente intestazioni, come di seguito:

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

4

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

"I documenti di Markdown R ordinari sono" uniti ", ma i notebook sono" visualizzati in anteprima ". Mentre l'anteprima del notebook è simile a un documento di Markdown R renderizzato, l'anteprima del notebook non esegue nessuno dei blocchi di codice R"


2
Sono d'accordo. La funzione "anteprima" è l'unico elemento di differenziazione tra i due. Mi chiedo perché si aggrappino a Rmarkdown quando Rnotebook è tutto ciò che è Rmarkdown con un'ulteriore funzionalità di anteprima.
PagMax,

4

Similarites: il taccuino R e il documento R Markdown sono abbastanza simili. Il formato Markdown funziona in entrambi i tipi di file. Entrambi i formati di file possono essere utilizzati per comunicare codice insieme a risultati e commenti ad altri. Si può scegliere di lavorare a maglia il documento creato nei formati di output HTML, PDF e WORD. Se c'è un errore nel codice, l'output non verrà generato. Per eseguire il file: CTRL + MAIUSC + K e per inserire il blocco di codice: CTRL + ALT + I.

Documento R Markdown: il documento Rmd può essere configurato tramite una procedura guidata e dispone di opzioni per la riproducibilità di documenti, diapositive di presentazione, app brillanti ecc. E un'opzione per creare documenti da un modello. Se si modifica il codice, l'ouput viene eseguito nell'output Rmd. Non offre l'opzione per visualizzare in anteprima il documento. L'intestazione YAML ha il formato di output come: output: html_document

Documento R Notebook: il documento R nb viene avviato direttamente e non viene visualizzata alcuna procedura guidata (come nel caso di .RMD). Insieme al file del notebook, viene generato un file html aggiuntivo con l'estensione * .nb.html. Il notebook ha l'opzione per l'anteprima. Se un codice viene alterato o modificato, il nuovo output non viene mostrato. L'output è mostrato nell'editor del codice stesso. Qualunque sia il vecchio output, viene reso solo. Nessun nuovo output viene generato dalla modifica del codice. Per mostrare l'output del codice, è necessario eseguire il blocco e quindi verrà visualizzato nell'output. L'intestazione YAML ha un output come: output: html_notebook

Intestazione YAML : se cambiamo l'intestazione YAML da un file a un altro, cambierà il tipo di documento. Ad esempio, hai un notebook R con intestazione YAML come html_notebook. Se si modifica l'intestazione YAML, il notebook R verrà convertito in documento Markdown R.

Se devi sceglierne uno, scegli il documento RMarkdown in quanto offre un maggiore controllo e aggiorna i documenti non appena lo crei.


3

Da jrnold :

I file R notebook mostrano l'output all'interno dell'editor, nascondendo la console. I file di markdown R mostrano l'output all'interno della console e non mostrano l'output all'interno dell'editor. Differiscono nel valore dell'output nelle intestazioni YAML.
L'intestazione YAML per il notebook R avrà la riga,

---
ouptut: html_notebook
---

L'intestazione YAML per il file markdown R avrà la riga,

ouptut: html_document

La copia dell'intestazione YAML da un notebook R in un file di markdown R lo modifica in un file di markdown R e viceversa. Più specificamente, cambiando il valore di outputQuesto è perché l'IDE RStudio all'apertura e il pacchetto rmarkdown quando il lavoro a maglia utilizza l'intestazione YAML di un file, e in particolare il valore della outputchiave nell'intestazione YAML, per determinare quale tipo di documento esso è.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.