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.
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.
Markdown permite generar muy fácilmente diferentes formatos de texto.
códigoPor si no os habéis fijado, así es como se genera una lista en markdown
También pueden ser numeradas
O, por ejemplo, una cita
En un lugar de la mancha…
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.
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
R Markdwon tiene un cheathseet aqui y la referencia aquí. Además tiene un tutorial muy completo aquí