El código permite reproducir exactamente los procedimientos que procesan los datos para convertirlo en resultados (modelos, gráficos, etc.). Esto es, transparencia analítica.
Además, como vimos en la primera clase, gracias al código:
R Markdown ofrece la posibilidad de generar reportes reproducibles. Esto no solo incluye el código, sino que también el texto mismo. No necesitamos tener el código en un script (R, Stata, SPSS, etc.) y nuestro reporte en otro (Word, Google Docs, etc.): todo está junto. Aparte de ser cómodo, esto tiene al menos dos ventajas (véase Frank & Hartgerink, 2017):
¿Para qué problema/trabajo podría ser útil generar reportes periódicos con R Markdown? Por favor explica tu ejemplo en un párrafo:
La gracia de R Markdown es que muestra el código y los resultados (gráficos, tablas, mensajes de advertencia, etc.) en nuestro reporte compilado. A menudo es útil cambiar estos comportamientos para casos específicos, como veremos a continuación.
Carguemos el tidyverse
, como de costumbre:
library(tidyverse)
## -- Attaching packages ------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2 v purrr 0.3.4
## v tibble 3.0.3 v dplyr 1.0.2
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## -- Conflicts ---------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
¿Y si queremos correr un comando sin mostrar sus mensajes explicativos en el reporte compilado? Ocupamos la opción message = F
para el chunk.
library(tidyverse)
Por cierto, la opción warning = F
es parecida, no mostrará mensajes de advertencia.
Ahora carguemos una base de datos. Voy a usar message = F
, para ahorrarme el mensaje explicativo en el reporte compilado:
datos_midwest <- read_csv("datos/midwest.csv")
Realicemos un gráfico sencillo:
ggplot(datos_midwest, aes(x = log(popdensity), y = percbelowpoverty)) +
geom_point()
¿Y si queríamos solo el gráfico, sin el código que lo genera? Ocupamos la opción echo = F
para chunk:
También podemos correr un bloque de código silenciosamente, sin mostrar ni el código ni su resultado en el reporte. Por ejemplo, ahora voy a hacer dos bloques, uno que cargue el paquete “lubridate” silenciosamente y otro que nos muestre una de sus bases de datos de prueba, “lakers”.
El primero lleva la opción include = F
.
lakers <- lakers
head(lakers)
## date opponent game_type time period etype team player result points type x y
## 1 20081028 POR home 12:00 1 jump ball OFF 0 NA NA
## 2 20081028 POR home 11:39 1 shot LAL Pau Gasol missed 0 hook 23 13
## 3 20081028 POR home 11:37 1 rebound LAL Vladimir Radmanovic 0 off NA NA
## 4 20081028 POR home 11:25 1 shot LAL Derek Fisher missed 0 layup 25 6
## 5 20081028 POR home 11:23 1 rebound LAL Pau Gasol 0 off NA NA
## 6 20081028 POR home 11:22 1 shot LAL Pau Gasol made 2 hook 25 10
Por último, si solo queremos mostrar un código, sin correrlo, podemos ocupar la opción eval = F
.
glimpse(datos_midwest)
Vimos las siguientes opciones de chunk. ¿Qué hace cada una?
Opción | ¿Qué hace? |
---|---|
message = F |
No muestra mensajes explicativos que nuestro código genere. |
warning = F |
|
echo = F |
|
include = F |
|
results = "hide" |
? |
eval = F |