Tutorial de Quarto

Generación de reportes

Autores

Pablo López Landeros

Última actualización

October 12, 2022

Resumen
Mostramos la manera de combinar código y texto en un reporte. Además, se incluye un resumen muy conciso sobre Markdown.

1 Generación de Reportes en Quarto.

Como ya vimos, Quarto provee una interfaz para generar reportes mediante el uso de texto y código. Consiste de tres tipos de archivo:

  1. YAML metadata (opciones de generación)
  2. Texto (Markdown)
  3. Chunks o pedazos de código (R, Python o SQL)
Como funciona?

1.1 Encabezado YAML (opcional)

Es un encabezado (100% opcional) delimitado por tres guiones --- donde especificamos el título, subtítulo, forma de output, autores y demás información global del documento.

---
title: "Tutorial de `Quarto`"
subtitle: "Generación de reportes "
author: "Pablo López Landeros"
date: "`r Sys.Date()`"
format: html
editor: visual
---

La lista completa de elementos que podemos cambiar en un YAML la encuentran en https://quarto.org/docs/reference/formats/html.html

1.2 Bloques de código

Dentro de nuestra interfaz podemos tener pedazos de código en R, Python y SQL.

a <- 10
b <- 5

c <- a + b
c
[1] 15

Además de poder generar un documento completo, podemos ver el resultado de los bloques aislados de código. Esto nos ahorra mucho tiempo ya que renderizar los documentos puede ser muy tardado.

Note

Si presionamos CTRL + ALT + i, insertamos automáticamente un bloque de código de R :)

1.3 Texto: Markdown

Markdown es una forma de escribir contenido mediante plaintext. A diferencia de los procesadores tradicionales de texto, los archivos en Markdown tienen la ventaja de poder ser compartidos e interpretados fácilmente entre distintas sistemas operativos como macOS, Windows, Linux, iOS e incluso Android.

1.3.1 Crash Course de Markdown

╭(◔ ◡ ◔)/.

La mejor guía-resumen de Markdown se encuentra aquí.

La documentación completa para R Markdown (ahora Quarto). Se encuentra aquí.

  • Títulos y subtítulos: Deberás ocupar el símbolo hash #, dependiendo del número de hashes que pongas el header se irá haciendo más pequeño. Por ejemplo: ### Algo aquí

2 Un hash

2.1 Dos Hashes

2.1.1 Tres Hashes

Cuatro Hashes

  • Palabras en negritas e itálicas.
    • Para poner palabras en negritas, tienes que rodear la(s) palabra(s) de 2 astericos. Por ejemplo: **palabras en negritas**.
    • Para poner palabras en itálicas, tienes que rodear la(s) plabra(s) de 1 asterisco. Por ejemplo: *palabras en itálicas*.
  • Palabras rayadas: Si quieres rayas una palabra, tienes que rodearla(s) de tildes. Por ejemplo ~~palabras rayadas~~.
  • Insertar imágenes: Para insertar una imágen en el documento necesitas ocupar la combinación ![tag](path/donde/está/la/imagen), el tag es cualquier nombre que le quieras poner a tu imagen y que después puedas referirte a ella más adelante en tu texto, el path en tu computadora donde se encuentra la imagen. Por ejemplo: ![](./docs/images/pointer.png).
  • Insertar ligas: Para agregar una liga necesitas ocupar la combinación [palabra que aparece con el link](URL/de/la/pagina). Por ejemplo: [Git tutorial](https://try.github.io/levels/1/challenges/1)
  • Generar listas: Para enlistar puedes ocupar asteriscos o el signo de más. Por ejemplo:
+ lista de
+ cosas
+ en markdown

que se vería así:

  • lista de
  • cosas
  • en markdown
  • Quote: Puedes ocupar una identación especial para indicar un quote o una nota importante en tu documento al utilizar el mayor que >. Por ejemplo:
> Algo importante aquí

Generaría esto:

Algo importante aquí

  • Tablas: Puedes generar tablas utilizando el pipe |. Puedes definir la alineación de cada columna con los dos puntos :, para justificar a la izquierda tendrás que poner los dos puntos al inicio seguido de guiones -el número de guiones indica qué tan ancha debe ser la columna, para justificar a la derecha tendrás que poner los puntos al final de los guiones, para dejar centrado tendrás que ocupar dos puntos al inicio y al final. Por ejemplo:


Que se verá así:


Note

Si esta forma de escribir parece intimidante, no te preocupes. Para esto, Quarto tiene el editor visual. El cual nos da una interfaz mucho más amable para trabajar.

3 Juntemos todo:

Ya vimos la parte de la escritura. Ahora veamos como podemos combinar lo aprendido en la sección pasada con lo que vimos la semana pasada (R).

Para poder insertar (y correr) códigos de R dentro de nuestro documento de Quarto, necesitamos encerrar nuestras líneas de código dentro de dos pares de ```.

Entre los corchetes podemos poner múltiples comandos para modificar el comportamiento de nuestro código. Algunos de los más comunes serían: - eval = FALSE muestra el código pero no lo corre. Es decir puede tener errores.

# Este codigo marcaría error:
library(gplot)

# Este no:
library(ggplot2)
  • include = FALSE evita que el código y los resultados aparezcan en el archivo final aunque el código sí se ejecuta y los resultados pueden ser usados en otros pedazos de código.

  • echo = FALSE no imprime el código pero sí los resultados en nuestro documento final. Se usa mucho para generar gráficas.

  • message = FALSE evita que mensajes generados por código aparezcan en el documento final.
  • warning = FALSE evita que las advertencias o “warnings” generados por código aparezcan en el documento final.
colores <- c('red',
             'blue',
             'purple',
             'orange',
             'yellow',
             '#42b0f5',
             '#42f5b3',
             '#e9eda4',
             'pink',
             'black')

ggplot(diabetes)+
  geom_histogram(aes(x=chol),bins = 10, fill = colores)+
  labs(
    x='Colesterol',
    y='Personas',
    title = "Distribución observada de los niveles de colesterol",
    subtitle = 'Grafica con colores personalizados'
  )+
  scale_fill_manual()+
  theme_light()

  • fig.cap = "..." agrega una nota al pie del código.
diabetes <- read.csv('data/diabetes.csv')

colores <- c('red',
             'blue',
             'purple',
             'orange',
             'yellow',
             '#42b0f5',
             '#42f5b3',
             '#e9eda4',
             'pink',
             'black')

ggplot(diabetes)+
  geom_histogram(aes(x=chol),bins = 10, fill = colores)+
  labs(
    x='Colesterol',
    y='Personas',
    title = "Distribución observada de los niveles de colesterol",
    subtitle = 'Grafica con colores personalizados'
  )+
  scale_fill_manual()+
  theme_light()

Una bonita gráfica generada con ggplot :D

¡Felicidades! Ya terminaste esta sección. Puedes ir a: