En aquesta sessió ens centrarem en la comunicació dels resultats d’una anàlisi de dades de manera clara, estructurada i reproduïble. Fins ara, hem treballat principalment amb scripts, però en un context real, el valor de l’anàlisi depèn tant de la qualitat tècnica de l’anàlisi com de la manera en què es presenta. Per això, introduirem l’ús de R Markdown, una eina que permet integrar text, codi i resultats en un únic document dinàmic.
L’objectiu és entendre com elaborar un informe complet que combini explicació narrativa, codi i visualitzacions. L’objectiu és fer informes reproduibles, és a dir, que puguin regenerar-se automàticament a partir de les dades i el codi, evitant errors derivats de copiar i enganxar resultats manualment o de tenir diferents versions d’un mateix document.
Crearem un informe en format HTML i veurem com publicar-lo en línia mitjançant plataformes com RPubs, de manera que es pugui compartir amb altres persones.
Un document d’R Markdown es basa en la combinació de text, codi i resultats en un únic fitxer font (.Rmd) que després es transforma en un document final (habitualment HTML). Aquesta estructura està pensada per facilitar la lectura humana sense perdre la capacitat d’execució automàtica.
Un document R Markdown conté tres elements principals:
Capçalera YAML
Text en Markdown (Markdown és un llenguatge de marcatge molt senzill que permet escriure text amb format, com ara títols, llistes, cursives, negreta, etc.)
Blocs de codi (chunks)
És la primera secció del document i defineix les metadades i el
format de sortida. Està delimitada per tres guions (---)
abans i tres guions (---) després. Exemple de capçalera
bàsic:
---
title: "Títol de l'informe"
author: "Nom de l'autor"
date: "2026-04-24" (pot ser automàtica amb "r Sys.Date()")
output: html_document
---
El cos del document s’escriu amb Markdown, un llenguatge lleuger per formatar text. Exemples habituals:
cursiva (text entre asterics)
negreta (text entre dobles asterics asterics)
codi (text entre accents oberts). Exemple: Calcula
la mitjana aritmètica amb la funció mean.
Els chunks són la part dinàmica del document. Permeten executar codi R i inserir-ne els resultats automàticament. Estàn identificats amb ```{r}.
En el procés de creació del document R Markdown, es poden executar els chunks per comprovar el seu funcionament clicant sobre la fletxa verde de la dreta.
a <- 5
b <- 3
c <- a+b
c
## [1] 8
Un altre exemple de chunk:
data(cars)
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
Els chunks poden tenir opcions dins dels claudàtors:
echo = FALSE: no es mostra el codi, però sí el resultat.
message = FALSE: evita que els missatges que genera el codi apareguin al document.
warning = FALSE: evita que els missatges de warning generats pel codi apareguin al document.
include = FALSE: ni el codi ni el resultat apareix en el document (però s’executa i es pot aprofitar en un altre chunk).
L’últim pas és el renderitzat (knit). Quan cliquem aquesta opció, R executa tots els chunks i genera el document HTML final.
Aquest procés garanteix que els resultats són actuals, tot és reproduïble i no hi ha manipulació manual.
Per defecte, un dataframe es veu igual que a RStudio.
head(mtcars, 10)
Hi ha diversos paquets que permeten fer taules. Una opció és la
funció kabble del paquet knitr. Per
exemple:
| mpg | cyl | disp | |
|---|---|---|---|
| Mazda RX4 | 21.0 | 6 | 160 |
| Mazda RX4 Wag | 21.0 | 6 | 160 |
| Datsun 710 | 22.8 | 4 | 108 |
| Hornet 4 Drive | 21.4 | 6 | 258 |
És possible incorporar gràfics al document. Per exemple:
plot(cars)
El següent chunk carrega un dataset des de l’ordinador (el fitxer de “mostra” que vam fer servir a la primera sessió del curs), realitza una petita anàlisi i mostra el resultat per pantalla. La idea clau és que, si canviem el fitxer original (per exemple, perquè ens adonem que ens faltaven alguns casos que havíem oblidat afegir), R importarà el nou dataset i recalcularà automàticament tots els resultats.
dades <- read.table(file = "data/mostra.txt",
header = TRUE,
sep = "\t",
dec = ",")
mean(dades$Edat)
## [1] 50.8
A més, podeu inserir càlculs directament dins de la narrativa: “L’edat mitjana dels subjectes és 50.8 anys”.
Recordeu que també podeu carregar les dades directament des d’Internet. Per exemple, per generar aquest gràfic que mostra l’evolució del preu del bitcoin entre 2013 i 2018.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
bitcoin <- read.table("https://bit.ly/3dyZXbz", header = T)
bitcoin$date <- as.Date(bitcoin$date)
ggplot(bitcoin, aes(x = date, y = value)) +
geom_line() +
xlab("Evolució del preu del bitcoin") +
ylab("Dòlars")
Un cop tenim l’informe generat en HTML, el pas final és fer-lo accessible a altres persones. En aquest apartat veurem com publicar-lo fàcilment a Internet mitjançant RPubs.
Publicar un informe en línia permet compartir resultats sense necessitat d’enviar fitxers adjunts, crear un portfoli personal de projectes, etc.
RPubs és la forma més senzilla de publicar informes HTML creats amb R Markdown. El procés és el següent:
Generar el document HTML (botó Knit)
A RStudio, clicar “Publish”
Seleccionar RPubs
Iniciar sessió (o crear compte, si és la primera vegada que el feu servir)
Afegir un títol i una descripció (opcional)
El resultat és una URL pública que podeu compartir.
Tot i que RPubs és ideal per començar, hi ha altres opcions més potents com Quarto, una evolució de R Markdown que permet webs complets, blogs i llibres, així com la integració de R amb altres llenguatges com Python.
Crea un document senzill amb R Markdown, que inclogui com a mínim una breu introducció en text, algun càlcul o resum de dades i una visualització bàsica (gràfic o mapa).
Un cop redactat el document, genera la versió final en format HTML mitjançant el procés de knit. Verifica que el document es crea correctament i que tots els elements (text, codi i resultats) es mostren de manera adequada.
Finalment, publica l’informe utilitzant la funcionalitat integrada de RStudio cap a RPubs. Aquest pas et permetrà obtenir una adreça web pública que podràs compartir.