1 Guía de uso para el docente

1.1 Estructura sugerida (6–8 horas)

  • ¿Qué es R Markdown y por qué usarlo?
  • Anatomía de un .Rmd (YAML + texto + chunks)
  • Markdown esencial (títulos, listas, énfasis)
  • Chunks (opciones echo/eval/include, message/warning)
  • Inline R, tablas con knitr::kable()
  • Gráficos, tamaño, alineación
  • Salidas: HTML y PowerPoint
  • Buenas prácticas y cierre

2 ¿Qué es R Markdown?

R Markdown permite combinar: - Texto (explicación del análisis) - Código (R) - Resultados (tablas, gráficos) en un solo documento reproducible.


3 Anatomía de un archivo .Rmd

Un .Rmd tiene tres partes:

  1. YAML (encabezado): título, autor, fecha, formato de salida.
  2. Texto en Markdown: narrativa y secciones.
  3. Chunks de código: ejecutan R y muestran resultados.

4 Markdown esencial (demostración rápida)

4.1 Títulos

5 I. Título nivel 1

5.1 Título nivel 2

5.1.0.1 Título nivel 3

5.2 3.2 Énfasis y listas

  • Lista 1
  • Lista 2

Negrita y cursiva.


6 4. Chunks: el corazón del documento

Un chunk de R se escribe así:


``` r
# código en R
```

6.1 4.1 Dataset de ejemplo

Usaremos mtcars (incluido en R).

# Dataset de ejemplo incluido en R
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

6.2 4.2 Opciones importantes de chunks

6.2.1 echo

  • echo=TRUE: muestra el código
  • echo=FALSO: oculta el código (muestra solo resultados)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.40   15.43   19.20   20.09   22.80   33.90

6.2.2 eval

  • eval=FALSE: NO ejecuta el chunk (pero puede mostrar el código si echo=TRUE)
# Este código NO se ejecutará
mean(mtcars$hp)

6.2.3 include

  • include=FALSE: ejecuta el chunk, pero NO muestra ni código ni salida. Ideal para “preparar” objetos (setup local).

7 5. Inline R: valores dentro del texto

Puedes insertar resultados dentro del texto:

La media de MPG es 20.09.


8 6. Tablas con knitr::kable()

# Tabla simple (primeras 6 filas)
knitr::kable(head(mtcars), caption = "Vista rápida de mtcars")
Vista rápida de 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

9 7. Gráficos básicos

# Gráfico simple con ggplot2
if (!requireNamespace("ggplot2", quietly = TRUE)) install.packages("ggplot2")
library(ggplot2)

ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point() +
  labs(
    title = "Relación entre peso (wt) y rendimiento (mpg)",
    x = "Peso (wt)",
    y = "MPG"
  )

9.0.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")


10 8. Salidas: HTML y PowerPoint

10.1 8.1 HTML (actual)

Este documento ya genera HTML por el YAML.

10.2 8.2 PowerPoint (demostración)

Para PowerPoint, cambia YAML a:

output:
  powerpoint_presentation:
    slide_level: 2

Regla práctica para slides: - Cada ## será una diapositiva cuando slide_level: 2. - Mantén poco texto por slide.


11 9. Actividad integradora (para cerrar)

11.1 Consigna

Crear un reporte con: - YAML (título, autor, fecha) - Secciones (Markdown) - 2 chunks: 1) resumen de variable numérica 2) un gráfico - 1 inline R dentro del texto - 1 tabla con kable()

11.1.1 Solución sugerida (rápida)

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

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

# 3) Resultado
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

12 10. Buenas prácticas (cierre)

sessionInfo()
## R version 4.3.3 (2024-02-29 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19045)
## 
## Matrix products: default
## 
## 
## 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        cli_3.6.5          knitr_1.50         rlang_1.1.4       
##  [5] xfun_0.52          generics_0.1.4     S7_0.2.0           jsonlite_2.0.0    
##  [9] labeling_0.4.3     glue_1.8.0         htmltools_0.5.8.1  sass_0.4.10       
## [13] scales_1.4.0       rmarkdown_2.29     grid_4.3.3         tibble_3.2.1      
## [17] evaluate_1.0.5     jquerylib_0.1.4    fastmap_1.2.0      yaml_2.3.10       
## [21] lifecycle_1.0.4    compiler_4.3.3     dplyr_1.1.4        RColorBrewer_1.1-3
## [25] pkgconfig_2.0.3    rstudioapi_0.17.1  farver_2.1.2       digest_0.6.37     
## [29] R6_2.6.1           tidyselect_1.2.1   pillar_1.10.2      magrittr_2.0.4    
## [33] bslib_0.9.0        withr_3.0.2        tools_4.3.3        gtable_0.3.6      
## [37] cachem_1.1.0