9 Comunicación de resultados
En los capítulos anteriores aprendimos a importar, manipular y visualizar datos. El último paso del flujo de trabajo (Figura 9.1), consiste en comunicar los resultados de manera clara, reproducible y profesional.
La comunicación no implica únicamente presentar resultados, sino integrarlos en un formato comprensible que permita su interpretación y eventual reproducción por parte de otros usuarios.
En este capítulo utilizaremos las herramientas de R Markdown (ver capítulo 3) para generar informes dinámicos que combinan texto, código y resultados en un único documento.
Figura 9.1: Etapa de comunicación de resultados.
9.1 Cargamos los paquetes
Para esta etapa final del flujo de trabajo, utilizaremos dos librerías fundamentales: tidyverse para la gestión y visualización de los datos, y el paquete knitr, que nos brindará una herramienta específica para presentar nuestros resultados en formato de tablas formales.
Importante: El paquete
knitrsuele instalarse automáticamente junto con R Markdown. Sin embargo, si al intentar cargarlo RStudio arroja un error, deberás instalarlo por única vez ejecutandoinstall.packages("knitr")en la consola.
9.2 Las bases de datos
Utilizaremos las versiones en español de los sets de datos PlantGrowth e iris:
9.3 El encabezado YAML
En el capítulo 3 vimos la estructura del encabezado YAML. Aquí profundizaremos en cómo configurarlo estratégicamente para generar documentos en formato HTML y Word.
9.3.1 Formato HTML
El encabezado debe ir al principio del documento. Un ejemplo de configuración básica para un informe en HTML sería:
9.3.2 Formato Word
Si el destino del informe requiere edición posterior o revisiones por parte de terceros que no utilizan R, la salida a Word es la más adecuada. Para generar un documento en este formato, la estructura es muy similar:
---
title: "Mi primer informe"
author: "Estudiante FCA"
date: "01-01-2026"
output: word_document
---
Importante: Para generar documentos Word es necesario tener instalado Microsoft Word o LibreOffice en la computadora.
Consejo: El encabezado YAML ofrece una enorme cantidad de opciones de personalización (como agregar tablas de contenidos dinámicas, numerar secciones automáticamente o aplicar temas visuales) que exceden el alcance de este libro introductorio. Para los interesados en explorar todas estas configuraciones, se sugiere visitar la bibliografía propuesta que se encuentra al final del presente capítulo.
9.4 Inserción de tablas
En R Markdown existen dos formas principales de incluir tablas en nuestro documento: escribiéndolas manualmente -tablas estáticas- mediante la sintaxis de Markdown, o generándolas dinámicamente a partir de los resultados de nuestro análisis en R.
9.4.1 Tablas estáticas
Si necesitamos incluir una tabla de conceptos, un diseño empírico o datos fijos que no provienen de un código de R, podemos “dibujarla” directamente en el documento usando barras verticales (|) para separar columnas y guiones (-) para separar el encabezado.
El uso de los dos puntos (:) en la línea de guiones permite definir la alineación de la columna (izquierda, centro o derecha). Por ejemplo:
| Tratamiento | Descripción | Dosis (L/ha) |
|:---:|:---|---:|
| **T0** | Control (agua) | 0 |
| **T1** | Dosis recomendada | 2 |
| **T2** | Dosis doble | 4 |
Al renderizar el documento, R Markdown convertirá automáticamente este texto en una tabla estructurada, con líneas divisorias y el texto alineado tal como se indicó, tal como se observa en el siguiente ejemplo.
| Tratamiento | Descripción | Dosis (L/ha) |
|---|---|---|
| T0 | Control (agua) | 0 |
| T1 | Dosis recomendada | 2 |
| T2 | Dosis doble | 4 |
9.4.2 Tablas dinámicas
Cuando generamos cuadros resúmenes a partir de nuestros datos, podemos imprimir el objeto directamente. A continuación, construimos una tabla resumen a partir de estadísticas descriptivas del set de datos PlantGrowth_es:
resumen <- PlantGrowth_es %>%
group_by(tratamiento) %>%
summarise(
n = n(),
peso_promedio = round(mean(peso), 2),
desvio = round(sd(peso), 2)
)
# Imprimimos el resultado crudo
resumen## # A tibble: 3 × 4
## tratamiento n peso_promedio desvio
## <fct> <int> <dbl> <dbl>
## 1 ctrl 10 5.03 0.58
## 2 trt1 10 4.66 0.79
## 3 trt2 10 5.53 0.44
Si renderizamos el documento en este punto, veremos que la salida de resumen es funcional, pero su aspecto visual es rústico y similar al de la consola de RStudio (sin líneas divisorias).
Para transformar esta salida en una tabla formal y profesional, utilizamos la función kable() del paquete knitr (que ya cargamos al inicio del capítulo). Esta función toma nuestros datos y les aplica automáticamente el formato de tabla adecuado para HTML o Word:
# Utilizamos kable para formatear la tabla
kable(resumen,
align = "c", # Centra el contenido de las columnas
col.names = c("Tratamiento", "N", "Peso Prom. (g)", "Desvío"), # nombres de columnas en la tabla
caption = "Estadísticas descriptivas del peso por tratamiento.") # título de la tabla| Tratamiento | N | Peso Prom. (g) | Desvío |
|---|---|---|---|
| ctrl | 10 | 5.03 | 0.58 |
| trt1 | 10 | 4.66 | 0.79 |
| trt2 | 10 | 5.53 | 0.44 |
Consejo: Si se desea generar tablas con un diseño aún más sofisticado (como colorear celdas, agrupar columnas complejas o añadir notas al pie), se recomienda explorar el paquete complementario
kableExtra. En la bibliografía al final del presente capítulo encontrará enlaces para aprender a utilizar esta herramienta.
9.5 Ejemplo integrador
A continuación, se muestra cómo integrar manipulación, visualización y tablas. En este caso, analizaremos la longitud del pétalo en el dataset iris_es:
# 1.Calculamos los promedios por especie y guardamos el resumen en un objeto llamado "resumen_iris"
resumen_iris <- iris_es %>%
group_by(especie) %>%
summarise(
long_petalo_prom = round(mean(long_petalo), 2),
ancho_petalo_prom = round(mean(ancho_petalo), 2)
)
# 2.Imprimimos la tabla con formato kable
kable(resumen_iris,
align = "c",
col.names = c("Especie", "Long. pétalo prom. (cm)", "Ancho pétalo prom. (cm)"),
caption = "Promedios de longitud y ancho de pétalo por especie.")| Especie | Long. pétalo prom. (cm) | Ancho pétalo prom. (cm) |
|---|---|---|
| setosa | 1.46 | 0.25 |
| versicolor | 4.26 | 1.33 |
| virginica | 5.55 | 2.03 |
# 3.Visualizamos graficamente
ggplot(iris_es, aes(x = especie, y = long_petalo, fill = especie)) +
geom_boxplot(alpha = 0.7, width = 0.6, color = "black", outlier.shape = 21) +
# Visualización de la distribución y datos atípicos
geom_jitter(width = 0.1, alpha = 0.5, size = 2, color = "black") +
# Puntos individuales para mostrar la densidad de los datos
stat_summary(fun = mean, geom = "point", shape = 23, size = 4, fill = "yellow", color = "black") +
# Resaltado de la media aritmética
scale_fill_brewer(palette = "Set2") +
# Escala fija de 0 a 8 para una comparación estandarizada
scale_y_continuous(limits = c(0, 8), breaks = 0:8) +
labs(title = "Distribución de la longitud del pétalo por especie",
x = "Especie",
y = "Longitud del pétalo (cm)",
fill = "Especie") +
theme_classic() +
theme(
plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
axis.title = element_text(size = 14, face = "bold"),
axis.text = element_text(size = 13, face = "bold"),
axis.ticks.length = unit(0.5, "cm"),
legend.position = "none", # Opcional: quitamos la leyenda porque ya están los nombres en el eje
panel.grid.major.x = element_line(color = "grey90") # Guía visual para la escala
) +
coord_flip()
9.6 Formatos de salida y renderizado
Como se introdujo en el Capítulo 3, un archivo R Markdown (.Rmd) puede renderizarse en diferentes formatos simplemente modificando la opción output del YAML o usando el botón desplegable junto a Knit en RStudio:
HTML: ideal para compartir por correo o publicar en la web. No requiere software adicional.
Word: útil para informes en formato editable o entregas académicas tradicionales..
PDF: requiere tener instalado LaTeX en el equipo (por ejemplo, a través del paquete
tinytex).
9.7 Presentación final con Rpubs
Una vez generado un documento en formato HTML con R Markdown, es posible publicarlo fácilmente en la web utilizando RPubs, una plataforma gratuita diseñada para compartir informes creados con R. En la Figura 9.2 se muestra la interfaz principal del sitio.
Figura 9.2: Interfaz principal de la plataforma RPubs.
Rpubs permite subir y publicar documentos e informes técnicos sin necesidad de conocimientos en desarrollo web, lo que lo convierte en una herramienta especialmente útil en contextos educativos y académicos.
Para publicar un informe, se deben seguir los siguientes pasos:
Renderizar: Generar el documento en formato HTML utilizando el botón Knit en RStudio.
Publicar: En la ventana del visor (Viewer), seleccionar el botón azul Publish y luego elegir la opción RPubs.
Acceder: Iniciar sesión en RPubs con tu cuenta (o crear una gratuita en el momento).
Configurar: Asignar un título, una descripción breve (opcional), completar el URL y confirmar la publicación.
Al finalizar, el informe se visualizará inmediatamente en la página web creada. Además, se generará una URL única que podrá compartirse, permitiendo acceder al documento desde cualquier navegador.
A modo de ejemplo, se puede visualizar el “ejemplo integrador” de este capítulo publicado en RPubs a través del siguiente enlace: Mi Primer Informe en RPubs.
Nota: si no puede visualizar “MI Primer Informe en RPubs”, por favor abra el documento haciendo clic con el botón derecho del mouse y selecciónando la opción “Abrir enlace en una pestaña nueva”.
¡Ahora es su turno! Los invito a crear su cuenta en la plataforma, seguir estos pasos y publicar su primer informe.
9.8 El cierre del flujo de trabajo
Con la exportación del informe en formato Word o PDF, o su publicación en formato HTML, se completa el ciclo analítico. En este sentido, la comunicación de los resultados no constituye un mero formalismo, sino la etapa final que dota de sentido a todo el proceso previo.
Es a través de la integración de datos, visualizaciones y texto que logramos transmitir información de manera clara, reproducible y útil para respaldar la toma de decisiones basadas en evidencia.
9.9 Bibliografía y sitios de interés
Para ampliar la información, se recomienda consultar:
Xie, Y., Allaire, J.J. & Grolemund, G. (2023). R Markdown: La guía definitiva.
Xie, Y., Dervieux, C. & Riederer, E. (2023). R Markdown Cookbook.