Diferencia entre R MarkDown y R NoteBook

136

Estoy tratando de entender a un alto nivel cuáles son las diferencias entre R Markdowny R NoteBook. Sé que están interrelacionados, pero me gustaría averiguar cómo están relacionados. Mi entendimiento es este:

Sé que los R Notebook son realmente documentos de R Markdown, pero estoy confundido acerca de las terminologías.

La opción de nuevo archivo de RStudio tiene ambos R Markdowny, al R NoteBookseleccionar cualquiera de ellos, se abre un R Markdownarchivo pero con pequeñas diferencias. Entonces, ¿solo tratando de descubrir por qué hay dos opciones y cuál es la diferencia entre las dos?

ingrese la descripción de la imagen aquí

Entiendo que R Notebooks se introdujeron recientemente y R Markdown ha estado allí por un tiempo. Parte de la confusión podría deberse a que nunca R Markdownantes usé R Notebook, así que mi pregunta relacionada o más específica es

¿Qué está haciendo R NoteBook de manera diferente a solo usar R MarkDown o qué nuevas capacidades trae R NoteBook?

Todos mis éxitos en la búsqueda web apuntan a que R Notebook usa R Markdown, pero no encontré ninguna ayuda sobre lo que es específicamente diferente entre los dos.

PagMax
fuente
1
Utilizo knitr y LaTeX, así que elijo la opción R Sweave. Al no haber usado RMarkdown, todo lo que puedo decir es que LaTex puede hacer cualquier cosa, pero ese poder trae consigo complejidad y una curva de aprendizaje. Además, hay una gran comunidad de seguidores y abundantes libros y recursos.
lawyeR
1
gracias @lawyeR. No me preocupan los recursos y puedo orientarme bastante bien sobre R y LaTeX. Me preguntaba qué era Sweave, pero pensé que me preocuparía más tarde. Gracias por tus ideas sobre eso. por ahora solo estoy mirando las diferencias de nivel superior entre estos diversos sabores de R.
PagMax
55
Y si bien es un gran admirador de leer el manual, ¿qué le parece leer la pregunta real que rechazó y responder específicamente a lo que se hace en la pregunta en lugar de descargar el material de la documentación?
PagMax

Respuestas:

55

Por lo que yo entiendo y desde mi configuración no hay diferencia de codificación. La diferencia está en el renderizado. La extensión del archivo es la misma.

Cuando crea un nuevo R Notebook, agrega html_notebookla opción de salida en el encabezado. Esa es la diferencia. Luego puede previsualizar el renderizado rápidamente sin tener que tejerlo. También actualiza la vista previa cada vez que guarda. Sin embargo, en esa vista previa no tiene el código de salida (sin figuras, sin tablas ...) (al menos en mi configuración). Sin html_notebooken la salida no hay vista previa del botón

ingrese la descripción de la imagen aquí

como puede ver, se muestran las opciones de Vista previa, pero también puede tejerlo en el formato que desee. Lo agregará al código del encabezado cuando lo haga.

ingrese la descripción de la imagen aquí

Sin embargo, si no tiene eso html_notebooken su encabezado, solo puede tejer su código para ver cómo se ve (todo el libro) (ignore la opción predeterminada adicional que agregué con la imagen)

ingrese la descripción de la imagen aquí

y la opción de vista previa no se muestra en el menú desplegable

ingrese la descripción de la imagen aquí

De lo contrario, funciona igual. Para algunas configuraciones predeterminadas, la salida también está oculta por defecto en la sección de código.

Tenga en cuenta que puede mezclar varias opciones de salida en su encabezado para que pueda mantener la vista previa y mantener sus opciones de punto para la exportación.

R. Prost
fuente
2
Como complemento, hay un error con UTC (teniendo en cuenta los acentos y los caracteres que no están en inglés) con el cuaderno. Arruinará su salida y su archivo ... así que es mejor atenerse a la reducción ... Este punto todavía se está abordando (hasta donde yo sé)
R. Prost
44
Su respuesta es absolutamente lo que creo que la diferencia es después de usarlo durante unos meses. Lo que me gana es que R Notebook lo es todo y, sobre todo, lo que R MarkDown es. ¿Por qué continuar con R Markdown entonces? ¡Puede usar el cuaderno R y directamente "tejer" en lugar de "vista previa" y tiene su funcionalidad R Markdown !!
PagMax
2
Creo que es más un problema de legado, para no confundir a las personas que ya usan Rmarkdown. Además, la versión actual de notebook (o R) tiene ese error que mencioné anteriormente que me impide usarlo básicamente. Mi texto se reemplaza con galimatías en el archivo fuente también dependiendo de la forma en que lo use (desde rmardown a notebook o notebook a rmarkdown). Así que me quedo con Markdown hasta que pueda arreglar eso. Especialmente que la vista previa del cuaderno no es tan útil para mí, solo previsualiza el texto sin los trazados, etc. pero tiene mucho potencial.
R. Prost
42

Recientemente encontré esta publicación que me dejó en claro sobre el tema R Markdown vs. R Notebook. http://uc-r.github.io/r_notebook

Aquí hay algunas líneas relevantes:

Escribir un documento de R Notebook no es diferente a escribir un documento de R Markdown. La sintaxis del fragmento de texto y código no difiere de lo que aprendió en el tutorial de R Markdown. La diferencia principal está en la interactividad de un R Notebook. Principalmente que cuando se ejecutan fragmentos en un documento R Markdown, todo el código se envía a la consola a la vez , pero en un R Notebook, solo se envía una línea a la vez . Esto permite que la ejecución se detenga si una línea genera un error.

También existe esto en knit vs. vista previa cuando crea un R Notebook en RStudio:

La vista previa le muestra una copia HTML representada del contenido del editor. En consecuencia, a diferencia de Knit , Preview no ejecuta ningún fragmento de código R. En su lugar, se muestra la salida del fragmento cuando se ejecutó por última vez en el editor.

Esperamos que te sea útil.

Mani Tajaddini
fuente
¡Esa segunda parte es especialmente útil para entender la diferencia!
gaelgarcia
15

Una de las diferencias más importantes no está completamente clara a partir de las respuestas anteriores.

De la Sección 3.2.1.3 del libro Bookdown :

También hay un Restart R and Run All Chunkselemento en el Runmenú en la barra de herramientas del editor, que le brinda una nueva sesión de R antes de ejecutar todos los fragmentos. Esto es similar al Knitbotón, que inicia una sesión R separada para compilar el documento.

En otras palabras, tejer crea un nuevo entorno y ejecuta todo el código allí. Por el contrario, el R Notebook utiliza el entorno global tal como es para representar el archivo HTML. De hecho, para un R Notebook, los cambios en el archivo HTML ocurren cada vez .Rmdque se guarda el documento. El Previewbotón simplemente abre el archivo HTML en su estado actual. No se ejecuta código. Previewliteralmente significa lo que dice: simplemente te muestra lo que ya se ha hecho.

¿Por qué importa esto? Por ejemplo, si .Rmdse abre un archivo R Notebook , pero no se ejecutan fragmentos de código, entonces el archivo HTML hará que todo el código de entrada y marcado sea correcto, pero no aparecerá ninguna salida. O suponga que define alguna variable xen la Consola, pero no en un fragmento de código. Si intenta usar xen algún lugar de un R Notebook, funcionará bien. La vista previa del documento HTML también funcionará bien. Por otro lado, tejer el documento generará un error de "variable desconocida" porque tejer ejecuta todo el código en un nuevo entorno, y la variable xnunca se definió en el archivo de rebajas en ninguna parte.

Sean Raleigh
fuente
7

La diferencia es que en R Notebok puede escribir Markdown y R-code Chunks y ejecutarlos directamente y ver los resultados de inmediato. Es una especie de cuaderno para ti.

R Markdown está ahí para crear resultados atractivos en html, pdf o un documento de Word. Combinando Markdown y R-Code-Chunks. Una breve introducción y motivación se puede encontrar aquí .

Si desea obtener más información sobre el paquete knitr, haga clic aquí.

Swolf
fuente
2
Bueno, esto todavía no explica en qué se diferencia Markdown de Notebook. (Entiendo que el portátil usa Markdown) pero R Markdown existía antes de que los R portátiles se introdujeran el año pasado. Entonces, ¿qué nuevas características hay en R notebook que antes no eran posibles simplemente usando R markdown?
PagMax
3
@PagMax Creo que la diferencia radica en la velocidad en renderizar su salida html desde su archivo Rmarkdown. Cuando desee utilizar knitr para producir una salida html de su Markdown R, lleva un poco de tiempo "tejer" todo su código y generar la salida. Para acelerarlo, puede ver su Rmarkdown en html usando el "modo" de Rnotebook en Rstudio cambiando su salida a "html_notebook", le permite ejecutar una repetición de un fragmento, luego hacer ctrl + shift + k (pc) y El HTML se actualiza muy rápidamente.
chang02_23
1
Creo que el problema que está teniendo el OP es que no hay realmente una gran diferencia entre los 2. La principal diferencia que veo, que capté principalmente al leer las respuestas aquí, es que RNB te permite ejecutar fragmentos individuales de R codifique de forma independiente y "en línea", mientras que RMD requiere que renderice o no el archivo completo. Imagínese si tuviera un archivo enorme y solo necesitara verificar un pequeño gráfico. RNB es bueno para eso. RMD puede tardar demasiado en renderizarse y, por lo tanto, es inconveniente.
Bryan Goggin
@BryanGoggin Todavía puede ejecutar los fragmentos independientes en Rmd también.
PagMax
5

Aquí hay una diferencia práctica que encontré:

Cuando tenga que comentar una parte del texto, inserciones RMarkdown #en cada línea de su texto, mientras que RNotebook resume perfectamente el texto entre un único par de <!--, --->signos (como en archivos html)

Se puede decir, qué diferencia trivial. Sin embargo, solo por eso, ahora siempre uso R Notebook (en lugar de RMarkdown) en RStudio para todos mis documentos. En todo lo demás, parecen lo mismo (para mis necesidades, al menos, como generar html y pdf)

De lo contrario, mis comentarios de repente se convierten en encabezados, como a continuación:

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

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

"Los documentos ordinarios de Markdown R están" unidos ", pero los cuadernos están" previsualizados ". Si bien la vista previa del cuaderno es similar a un documento R Markdown renderizado, la vista previa del cuaderno no ejecuta ninguno de sus fragmentos de código R"

Sibo Jiang
fuente
2
Estoy de acuerdo. La función de "vista previa" es el único diferenciador entre los dos. Me pregunto por qué se aferran a Rmarkdown cuando Rnotebook es todo lo que es Rmarkdown con una función de vista previa adicional.
PagMax
4

Similitudes: el cuaderno R y el documento R Markdown son bastante similares. El formato Markdown funciona en ambos tipos de archivos. Ambos formatos de archivo se pueden usar para comunicar código junto con resultados y comentarios a otros. Se puede elegir entrelazar el documento creado a los formatos de salida HTML, PDF y WORD. Si hay un error en el código, la salida no se generará. Para ejecutar el archivo: CTRL + MAYÚS + K e insertar fragmento de código: CTRL + ALT + I.

Documento R Markdown: el documento Rmd se puede configurar a través de un asistente y tiene opciones para reproducir documentos, diapositivas de presentación, aplicaciones brillantes, etc. y una opción para crear documentos a partir de una plantilla. Si cambia el código, la salida se ejecuta en la salida Rmd. No ofrece la opción de Vista previa del documento. El encabezado YAML tiene formato de salida como: salida: html_document

Documento de R Notebook: el documento R nb se inicia directamente y no aparece ningún asistente (como en el caso de .RMD). Junto con el archivo del cuaderno, se genera un archivo html adicional con esa extensión * .nb.html. El cuaderno tiene la opción de Vista previa. Si algún código se modifica o edita, la nueva salida no se muestra. El resultado se muestra en el editor de código. Cualquiera que sea la salida anterior, solo se representa. No se genera una nueva salida del cambio de código. Para mostrar la salida del código, necesitamos ejecutar el fragmento y luego aparecerá en la salida. El encabezado YAML tiene salida como: salida: html_notebook

Encabezado YAML : si cambiamos el encabezado YAML de un archivo a otro, cambiará el tipo de documento. Por ejemplo, tiene un cuaderno R que tiene un encabezado YAML como html_notebook. Si cambia el encabezado YAML, su notebook R se convertirá en un documento R Markdown.

Si tiene que elegir uno, vaya con el documento de RMarkdown , ya que ofrece más control y actualiza los documentos tan pronto como lo teje.

Saurabh Jain
fuente
3

De jrnold :

Los archivos del cuaderno R muestran la salida dentro del editor, mientras que ocultan la consola. Los archivos R markdown muestran la salida dentro de la consola y no muestran la salida dentro del editor. Difieren en el valor de salida en sus encabezados YAML.
El encabezado YAML para el portátil R tendrá la línea,

---
ouptut: html_notebook
---

El encabezado YAML para el archivo R markdown tendrá la línea,

ouptut: html_document

Copiar el encabezado YAML de un cuaderno R a un archivo de rebaja R lo cambia a un archivo de rebaja R y viceversa. Más específicamente, cambiar el valor de outputEsto se debe a que el IDE de RStudio al abrir y el paquete rmarkdown al tejer utiliza el encabezado YAML de un archivo, y en particular el valor de la outputclave en el encabezado YAML, para determinar qué tipo de documento es.

Yang Dai
fuente