10B - Reportes en R Markdown
Inicio
Comencemos cargando el tidyverse
y nuestros datos:
## Parsed with column specification:
## cols(
## .default = col_double(),
## county = col_character(),
## state = col_character(),
## category = col_character()
## )
## See spec(...) for full column specifications.
Generación de tablas desde data frames
Como hemos visto, podemos generar tablas “a mano” con R Markdown:
Nombre | Descripción |
---|---|
Juan | Un estudiante |
Ana | Una estudiante |
Supongamos que tenemos un data frame, como el siguiente, y queremos insertarlo como tabla en nuestro reporte.
Podemos insertarlo como tabla HTML gracias al paquete kableExtra
:
state | n |
---|---|
IL | 102 |
IN | 92 |
MI | 83 |
OH | 88 |
WI | 72 |
Ojo con la opción del chunk (results="asis"
): estamos dándole HTML directo a R Markdown, por lo que debemos decirlo explícitamente.
Como siempre en los paquetes de R, hay muchas opciones en kableExtra
. Aquí está la guía de HTML, de las viñetas del paquete. Aquí con unas opciones simples, que hacen que la tabla se vea mejor:
state | n |
---|---|
IL | 102 |
IN | 92 |
MI | 83 |
OH | 88 |
WI | 72 |
Imágenes y gráficos
Imágenes
Hemos visto la siguiente forma, muy simple, para insertar imágenes:
A menudo queremos personalizar cómo se muestran las imágenes, lo que podemos conseguir con las opciones del chunk. En este caso, bajamos a un 50% el tamaño de la imágenes y la alineamos en el centro. Por cierto, ¿qué está haciendo la opción echo=F
aquí?
Ecuaciones
Podemos hacer ecuaciones en R Markdown usando la sintaxis de \(\LaTeX\). Es bastante difícil de leer, pero muy completa (podemos hacer de todo). Un buen torpedo es DIMACS (s.f.).
\[ x^n + y^n = z^n \]
Tipos de documento generados por R Markdown
R Markdown puede compilarse a HTML o PDF (\(\LaTeX\)). Esto permite generar múltiples tipos de documento.
A continuación veremos algunas características básicas de algunos tipos de documento. Algunos consejos aplican solo para computadores personales (como instalar \(\LaTeX\) o paquetes), y los documentos van a funcionar de inmediato en esta sesión de RStudio Cloud.
Reportes en HTML
Este es el formato que hemos estado utilizando.
Una de las gracias del HTML es que es interactivo, permite GIFs, videos, etc, que no podríamos poner en PDF.
Hay muchas plantillas. Por ejemplo, las de
prettydoc
.
Diapositivas en HTML (paquete revealjs
)
Hay un ejemplo en los archivos
11c_diapos_html...
.Una vez que tengamos instalado el paquete
revealjs
, podemos crear una nueva presentación con “File > New File > R Markdown > From Template > Reveal.js Presentation (HTML)”.Esta guía contiene las opciones.
Reportes en PDF
Hay un ejemplo en los archivos
11d_reporte_pdf...
.Podemos crear un nuevo reporte con “File > New File > R Markdown > PDF”.
Para que funcionen, debemos tener \(\LaTeX\) en nuestro computador (aquí en RStudio Cloud ya viene). La forma más fácil instalarlo localmente es con el paquete de R
tinytex
.Algunas cosas en nuestro código podrían tener que cambiar. Por ejemplo,
kableExtra
va a funcionar un poco distinto; aquí está la guía dekableExtra
para reportes en PDF.
Diapositivas en PDF (paquete beamer
)
Hay un ejemplo en los archivos
04_diapos_pdf...
.No debemos instalar el paquete
beamer
antes, RStudio lo instalará por nosotros si no lo tenemos.Podemos crear diapositivas en pdf con “File > New File > R Markdown > Presentation > PDF (Beamer)”.
Para que funcionen, debemos tener \(\LaTeX\) en nuestro computador (aquí en RStudio Cloud ya viene). La forma más fácil instalarlo localmente es con el paquete de R
tinytex
.Aquí hay una guía para presentaciones con
beamer
.
Plantillas para otros tipos de documento con el paquete pagedown
- Creo que vale la pena mirar la página de dicho paquete. Tiene excelentes plantillas para hacer CVs, pósters, cartas, etc.
- El paquete no funciona en RStudio Cloud, por ahora.