19  Renderizar un script R

Un hecho subestimado es que mucho de lo que puedes hacer con R Markdown, también puedes hacerlo con un script R.

Si está en modo de análisis y desea un informe como efecto secundario, escriba un script R. Si está escribiendo un informe con mucho código R, escriba .Rmd. En cualquier caso, renderice en Markdown y/o HTML para comunicarse con otros seres humanos.

Continuará especificando cosas como el formato de salida a través de YAML en la parte superior del archivo. Esto deberá comentarse con #'.

19.1 Transforme RMarkdown en un script R renderizable

Consiga un archivo RMarkdown que funcione, como el que creó en su prueba de Rmd. O utilice el documento estándar .Rmd que RStudio crea con File > New File > R Markdown ….

Guarde el archivo como foo.R, en lugar de foo.Rmd. Sí, por un breve momento, tendrás R Markdown guardado como un script R, pero eso no será así por mucho tiempo.

Transforme RMarkdown a R:

  • ¿Algo que no sea código R? ¿Te gusta el YAML y la prosa? Protégelo con comentarios estilo roxygen: comienza cada línea con #'.

  • ¿Algo que sea código R? Déjelo existir “tal cual” como código de nivel superior. Eso significa que necesitarás cambiar la sintaxis de los encabezados de fragmentos de R de esta manera:

    Antes: ```{r setup, include = FALSE}
    Después: #+ r setup, include = FALSE

    Reemplace las comillas invertidas iniciales y la llave de apertura con #+.
    Eliminar la llave final.
    Elimina las 3 comillas invertidas que finalizan cada fragmento.

Renderice el script R a través de uno de estos métodos:

  • Haga clic en el icono “notebook” en RStudio para “Compile Report”.
  • En RStudio, haga File > Knit Document.
  • En R, ejecute rmarkdown::render("foo.R").

Obtendrá un informe de markdown y/o HTML, al igual que con R Markdown.

Si tiene problemas para realizar todos los cambios necesarios y se siente frustrado, vea a continuación un ejemplo que puede copiar y pegar.

Todos los consejos de flujo de trabajo de la prueba de Rmd se aplican aquí: cuando escriba un script de un análisis, preséntelo en markdown, confirme el .R, el .md, cualquier figura asociada y envíelo a GitHub. Los colaboradores pueden ver su código, pero también explorar los resultados sin tener que descargar y ejecutar el código. Esto hace que el estado actual de su análisis sea accesible para alguien que ni siquiera ejecuta R o que quiere echar un vistazo rápido a las cosas desde un teléfono celular o mientras está de vacaciones.

19.2 Escribir un script R listo para renderizar

En lugar de transformar un archivo RMarkdown, creemos directamente un script R listo para renderizar.

Cree un nuevo script R y copie/pegue este código en él.

#' Aquí hay algo de prosa en un comentario muy especial. Resumamos el conjunto de datos integrado `VADeaths`.
# Aquí hay un comentario de código normal, que permanecerá como tal.
summary(VADeaths)

#' Aquí hay algo más de prosa. Puedo usar la sintaxis habitual de Markdown para hacer cosas
#' **negritas** o *italicas*. Usemos un ejemplo de la ayuda `dotchart()` para
#' hacer un diagrama de puntos de Cleveland a partir de los datos de `VADeaths`. Incluso me molesto en nombrar
#' este fragmento, entonces el PNG resultante tiene un nombre decente.
#+ dotchart
dotchart(VADeaths, main = "Tasas de mortalidad en Virginia - 1940")

Renderice el script R mediante uno de estos métodos:

  • Haga clic en el icono “notebook” en RStudio para “Compile Report”.
  • En RStudio, haz File > Knit Document.
  • En R, haz rmarkdown::render("YOURSCRIPT.R").

¡Disfruta de tu atractivo informe casi sin esfuerzo! En serio, todo lo que tenías que hacer era pensar en cuándo usar los comentarios especiales #' para promocionarlo a un texto bien renderizado.

Basándonos en los consejos de flujo de trabajo en Prueba de Rmd, agreguemos algo de contenido de YAML, comentado adecuadamente con #', y solicitemos github_document como formato de salida. Aquí está el guión completo nuevamente:

#' ---
#' title: "¡Se pueden renderizar scripts R!"
#' output: github_document
#' ---
#'
#' Aquí hay algo de prosa en un comentario muy especial. Resumamos el conjunto de datos integrado `VADeaths`.
# Aquí hay un comentario de código normal, que permanecerá como tal.
summary(VADeaths)

#' Aquí hay algo más de prosa. Puedo usar la sintaxis habitual de Markdown para hacer cosas
#' **negritas** o *italicas*. Usemos un ejemplo de la ayuda `dotchart()` para
#' hacer un diagrama de puntos de Cleveland a partir de los datos de `VADeaths`. Incluso me molesto en nombrar
#' este fragmento, entonces el PNG resultante tiene un nombre decente.
#+ dotchart
dotchart(VADeaths, main = "Tasas de mortalidad en Virginia - 1940")

Aquí detrás de escena hemos usado rmarkdown::render() para representar este script y puedes ir y verlo en GitHub.