1 ¿Qué es R Markdown?

R Markdown combina: - Texto explicativo - Código en R - Resultados (tablas y gráficos)

Objetivo taller: generar un reporte reproducible con Knit.


2 Estructura de un .Rmd

Un .Rmd tiene: 1) YAML (arriba) 2) Texto en Markdown 3) Chunks con código R


3 Markdown esencial

3.1 Títulos y listas

  • Aprender a crear reportes reproducibles con R Markdown
  • Dominar la integración de texto, código y resultados
  • Poder compartir análisis de forma profesional

3.2 Negrita y cursiva

Frase: Este taller me ayudará a crear reportes profesionales de forma eficiente.


4 Chunks (código en R)

4.1 Cargar datos de ejemplo

R incluye un dataset llamado mtcars.

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

4.2 Opciones de chunks

Ejercicio 6 (exploración):

  1. Agrega echo=FALSE dentro de las llaves.

  2. Knit y observa qué cambia.

Ejemplo:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.40   15.43   19.20   20.09   22.80   33.90

5 Inline R (código dentro del texto)

Ejercicio 7 (5 min):
Completa la frase usando inline R para mostrar la media de mpg con 2 decimales:

La media de MPG es: r round(mean(mtcars$mpg), 2)


6 Tablas

Ejercicio 8 (10 min):
Muestra una tabla con las primeras 8 filas usando knitr::kable().

knitr::kable(head(mtcars, 8))
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2

7 Gráficos

Ejercicio 9 (15 min):
Crea un gráfico de dispersión entre wt (peso) y mpg.

# TODO:
# 1) Instala/carga ggplot2 si hace falta
# 2) Crea un scatter plot con geom_point()
# Pista: ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg)) + 
  geom_point(color = "blue", size = 3) +
  labs(title = "Relación entre Peso y Millas por Galón",
       x = "Peso (1000 lbs)",
       y = "Millas por Galón") +
  theme_minimal()

7.1 Control de tamaño del gráfico

  • Global: fig.width, fig.height en setup
  • Por chunk: fig.width=... fig.height=...
ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  labs(title = "MPG por número de cilindros", x = "Cilindros", y = "MPG")


8 Actividad final (integrador)

Tu reporte final debe tener: - 2 secciones (con ##) - 2 chunks: - summary de mpg - un gráfico - 1 inline R - 1 tabla con kable

8.0.1 Solución sugerida (rápida)

# 1) Resumen
res <- summary(mtcars$mpg)

# 2) Tabla
tab <- head(mtcars, 10)

res
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.40   15.43   19.20   20.09   22.80   33.90
knitr::kable(tab)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
# 3) Grafico
ggplot(mtcars, aes(x = hp, y = mpg)) +
  geom_point(aes(color = cyl), size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "darkred") +
  labs(title = "Relación entre Caballos de Fuerza y MPG",
       x = "Caballos de Fuerza",
       y = "Millas por Galón",
       color = "Cilindros") +
  theme_minimal()


9 Checklist antes de entregar

## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Peru.utf8  LC_CTYPE=Spanish_Peru.utf8   
## [3] LC_MONETARY=Spanish_Peru.utf8 LC_NUMERIC=C                 
## [5] LC_TIME=Spanish_Peru.utf8    
## 
## time zone: America/Lima
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] ggplot2_4.0.0
## 
## loaded via a namespace (and not attached):
##  [1] vctrs_0.6.5        nlme_3.1-168       cli_3.6.5          knitr_1.50        
##  [5] rlang_1.1.6        xfun_0.53          generics_0.1.4     S7_0.2.0          
##  [9] jsonlite_2.0.0     labeling_0.4.3     glue_1.8.0         htmltools_0.5.8.1 
## [13] sass_0.4.10        scales_1.4.0       rmarkdown_2.30     grid_4.5.1        
## [17] tibble_3.3.0       evaluate_1.0.5     jquerylib_0.1.4    fastmap_1.2.0     
## [21] yaml_2.3.10        lifecycle_1.0.4    compiler_4.5.1     dplyr_1.1.4       
## [25] RColorBrewer_1.1-3 pkgconfig_2.0.3    mgcv_1.9-3         rstudioapi_0.17.1 
## [29] lattice_0.22-7     farver_2.1.2       digest_0.6.37      R6_2.6.1          
## [33] tidyselect_1.2.1   splines_4.5.1      pillar_1.10.2      magrittr_2.0.3    
## [37] Matrix_1.7-3       bslib_0.9.0        withr_3.0.2        tools_4.5.1       
## [41] gtable_0.3.6       cachem_1.1.0