Tablas

Para incluir información en forma de tablas en R Markdown, tenemos que escribir la información en un formato especial, o utilizar alguna librería de visualización de datos.

Tablas pequeñas

Para las tablas pequeñas, podemos utilizar un formato especial para escribir pequeñas tablas en Markdown.

Por ejemplo, esta tabla:

Juego Compañia Clasificacion Precio (MXN)
Animal Crossing Nintendo E 1600
Persona 5 Atlus T 1500
Final Fantasy VII Square Enix T 1500
Fortnite Epic Games M 0

Se dibuja con el siguiente código:

| Juego             | Compañia    | Clasificacion | Precio (MXN) |
|-------------------|-------------|---------------|--------------|
| Animal Crossing   | Nintendo    | E             | 1600         |
| Persona 5         | Atlus       | T             | 1500         |
| Final Fantasy VII | Square Enix | T             | 1500         |
| Fortnite          | Epic Games  | M             | 0            |

Que en el editor se ve así:

El código anterior se puede generar en la página siguiente: https://www.tablesgenerator.com/markdown_tables, la cual nos proporciona una manera sencilla de generar tablas sencillas en Markdown, elemento a elemento.

Utilizando librerías de visualización.

En el caso en que no querramos crear nuestras tablas elemento a elemento, sino utilizar una base de datos, hay dos librerías recomendadas para realizar este fin:

  • {kable} - Recomendable para tablas pequeñas y medianas (que quepan bien en la pantalla).

  • {DT} - Recomendable para tablas grandes (que no quepan en la pantalla).

Las cuales nos generan tablas HTML para poder visualizar en nuestros documentos de RMarkdown.

Para ilustrar lo anterior, vamos a trabajar con la base de datos de Tweets de el Joker, la cual se puede descargar desde este enlace.

A continuación, vamos a generar la tabla de Kable.

mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
Recreating booktabs style table
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440

Como podemos ver, lo que hay que hacer es:

  1. Poner el nombre del objeto que guarda tu base de datos.

  2. Escribir el código que genera tu tabla (lo cual puedes copiar y pegar).

Y ya. Para ver más tablas puedes visitar su documentación, en el siguiente enlace.

Tablas DT.

Las tablas de DT son más aptas para tablas grandes. En el siguiente ejemplo vamos a utilizar la base de datos de Tweets de la película de The Joker para ver como puede funcionar la librería.

## Parsed with column specification:
## cols(
##   value = col_character(),
##   nombre = col_character(),
##   usuario = col_character(),
##   fecha = col_character(),
##   retweets = col_double(),
##   like = col_double(),
##   replies = col_double(),
##   texto = col_character(),
##   hashtags = col_character(),
##   ctasMencionadas = col_character(),
##   nombres_propios = col_character(),
##   fecha2 = col_date(format = "")
## )
## Rows: 1,028
## Columns: 12
## $ value           <chr> "The Trend  @thetrend___ 19m 19 minutes ago More…
## $ nombre          <chr> "The Trend", "Amir Alonso Pinardel", "Jaime", "A…
## $ usuario         <chr> "@thetrend___", "@amiralonsopinar", "@blackjim7"…
## $ fecha           <chr> "2019-10-05", "2019-10-05", "2019-10-05", "2019-…
## $ retweets        <dbl> 3, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA,…
## $ like            <dbl> 6, 1, 2, NA, NA, 1, 1, NA, 1, NA, NA, 1, NA, 2, …
## $ replies         <dbl> NA, 1, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA,…
## $ texto           <chr> "\"Solía pensar que mi vida era una tragedia, pe…
## $ hashtags        <chr> "#Joker, #Guasón, #JokerMovie", "#Joker", "#Joke…
## $ ctasMencionadas <chr> NA, "@jokermovie, @comicsarg", NA, "@AHSFX, @jok…
## $ nombres_propios <chr> "Solía, Joaquin, Phoenix, Joker, Guasón, JokerMo…
## $ fecha2          <date> 2019-10-05, 2019-10-05, 2019-10-05, 2019-10-05,…

Para checar mayores referencias, visitar la página de documentación, disponible en este enlace.