R Markdown

Los documentos de R Markdown permiten generar “narrativas de datos”. En un mismo documento puedes tener texto explicando qué haces, ir insertando el código que utilizas para hacerlo y representar gráficamente los resultados del análisis. Está basado en un lenguaje llamado [markdown]((https://en.wikipedia.org/wiki/Markdown) que permite dar formato de manera muy simple sobre texto plano. Luego, el documento puede convertirse fácilmente en HTML, PDF o Word.

Generar los HTML

En la parte de arriba de RStudio hay un botón que pone Knit HTML con el que puede generarse el documento HTML en el que se aparecerá el texto, y snippets con el código y el resultado de la ejeción.

Formato básico

Markdown permite generar muy fácilmente diferentes formatos de texto.

Encabezados

  • Texto H1

  • Texto H2

  • Texto H3

  • Texto 4

Formatos de texto

  • cursiva (también cursiva)
  • bold (o negrita)
  • código
  • tachado

Enlaces e imágenes

Símbolos matemáticos

  • Superíndice m2
  • Ecuaciones en Latex, \(E = mc^{2}\)

Por si no os habéis fijado, así es como se genera una lista en markdown

  • Elemento 1
    • Elemento 1.1 (dos tabulaciones)
  • Elemento 2
  • Elemento 3

También pueden ser numeradas

  1. Elemento 1
  2. Elemento 2

O, por ejemplo, una cita

En un lugar de la mancha…

Codigo

En R Markdown, se utilizan la comilla sencilla invertida ` para mostrar código que no se ejecuta, por ejemplo, para dar formato a ggplot2

Ahora bien, lo interesante es que R Markdown permite insertar snipptes de código ejecutable como el de abajo que se conocen como code chunks.

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Como veis, se muestra diferente el código y la salidad del mismo.

Los code chunks permiten que el documento de R Markdown se comporte como un notebook ya que puedes ir ejecutándoles en la consola (pulsando el triangulito verde de la esquina superior derecha del chunk o vien pulsando crtl+shift+enter)

El inicio del code chunk con r determina que el código siguiente será R, pero no es el único lenguaje que soporta R Markdown, también soporta:

x = 'hello, python world!'
print(x.split(' '))
## ['hello,', 'python', 'world!']

También es posible insertar lo que se conoce como código inline, es decir, sin el snippet. Por ejemplo, puedo poner las cinco primeras letras con el siguiente código en R a, b, c, d, e

Los code chunks tiene diferentes opciones (aquí en chunk options) que se introducen en el encabezado. Permiten controlar la ejecución y la salida del resultado del código. Las más importantes son eval y echo. La primera determina si se ejecuta o no el código y la segunda si se muestra o no el código.

head(cars)

El chunk anterior no se ha ejecutado y no se muestra la salida.

##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10

El chunk anterior se ha ejecutado pero no se muestra el código.

Gráficos

En R Markdown, se pueden incluir también gráficos.

Hemos puesto echo = FALSE para que no se muestre el código en ggplot2 que genera la figura

También se pueden incluir gráficos de plotly

Recursos

R Markdwon tiene un cheathseet aqui y la referencia aquí. Además tiene un tutorial muy completo aquí