Ciencia de Datos: Manejo y Visualización de Datos con R
Programa del curso — 6 sesiones × 2 horas
1 Información general
| Modalidad | Virtual (sincrónica) |
| Fechas | Martes y jueves 5,7,12,14,19,21 de mayo 2026 |
| Horario | 17.00 a 19.00 |
| Duración | 6 sesiones × 2 horas |
| Plataforma | Zoom |
| Instructor | Manuel Spínola (mspinola@una.cr) |
| Contacto | Yoselyn Díaz (asistentecontableicomvis@una.ac.cr) |
| Inversión | $102,00 |
2 Descripción general
Trabajar con datos es una parte central de la ciencia, pero muchas veces el proceso de importar, limpiar, organizar y visualizar información consume más tiempo que el análisis mismo. Este curso enseña a usar R como herramienta para resolver esos problemas de forma eficiente y reproducible.
A lo largo de 6 sesiones de 2 horas, los participantes aprenderán a manejar bases de datos reales: desde la importación hasta la generación de reportes con gráficos y tablas profesionales. El énfasis está en la aplicación práctica: cada sesión parte de un problema concreto que cualquier persona que trabaja con datos ha enfrentado.
El curso está dirigido a estudiantes, profesionales y científicos con distintos niveles de experiencia. No se requiere experiencia previa en programación.
3 ¿Por qué R?
R es una de las herramientas más usadas en ciencia de datos, biología, ecología, economía y ciencias sociales. Entre sus ventajas:
- Gratuito y de código abierto — sin licencias ni restricciones
- Reproducible — el código documenta exactamente lo que se hizo con los datos
- Versátil — desde manipulación de datos hasta modelos estadísticos avanzados y mapas
- Comunidad activa — miles de paquetes y recursos de aprendizaje disponibles
4 Objetivos del curso
Al finalizar el curso, los participantes serán capaces de:
- Importar datos desde Excel, CSV y otros formatos comunes
- Limpiar, filtrar, transformar y resumir bases de datos
- Combinar múltiples tablas de datos
- Crear visualizaciones claras y publicables con
ggplot2 - Generar reportes reproducibles con tablas y gráficos en Quarto
5 Estructura del curso
| Sesión | Pregunta práctica | Tema técnico |
|---|---|---|
| 1 | ¿Cómo empiezo a trabajar con mis datos en R? | Fundamentos y entorno |
| 2 | ¿Cómo importo y entiendo mis datos? | Importación y exploración |
| 3 | ¿Cómo filtro, resumo y respondo preguntas con mis datos? | Transformación con dplyr |
| 4 | ¿Cómo junto y reestructuro mis bases de datos? | tidyr y joins |
| 5 | ¿Cómo comunico mis datos visualmente? | Visualización con ggplot2 |
| 6 | ¿Cómo genero un reporte profesional con mis resultados? | Tablas, gráficos interactivos y Quarto |
6 Sesión 1 — ¿Cómo empiezo a trabajar con mis datos en R?
Duración: 2 horas
Problema que resuelve: Muchas personas evitan R porque no saben por dónde empezar. Esta sesión elimina esa barrera inicial y establece las bases para trabajar de forma organizada.
Objetivos:
- Instalar y configurar R y RStudio
- Organizar un proyecto de análisis de datos
- Entender los objetos básicos de R
Contenidos:
- ¿Qué es la ciencia de datos? El flujo de trabajo: datos → análisis → comunicación
- R y RStudio: instalación y primeros pasos
- Proyectos de R: por qué organizarse desde el inicio ahorra tiempo
- La consola, los scripts y el entorno de trabajo
- Tipos de objetos: vectores, data frames y listas
- Operaciones básicas: asignación, indexación y funciones elementales
- Introducción a Quarto como cuaderno de trabajo
Paquetes introducidos: base R, here
Ejercicio práctico: Crear un proyecto en RStudio, organizar las carpetas de trabajo, escribir un script con operaciones básicas y explorar un data frame con datos reales.
7 Sesión 2 — ¿Cómo importo y entiendo mis datos?
Duración: 2 horas
Problema que resuelve: Tengo mis datos en Excel o CSV y no sé cómo cargarlos en R. Una vez cargados, no sé si están bien o si tienen errores.
Objetivos:
- Importar datos desde los formatos más comunes
- Explorar la estructura y calidad de una base de datos
- Detectar y manejar problemas comunes en los datos
Contenidos:
- Importar cualquier formato con
datawizard::data_read()— CSV, Excel, SPSS, Stata, SAS sin necesidad de recordar qué paquete usar para cada formato - Exportar con
datawizard::data_write() - Primera exploración:
glimpse(),summary(),head(),tail() - Descripción automática de variables con
datawizard::describe_distribution() - Codebook automático con
datawizard::data_codebook() - Problemas comunes: nombres de columnas inconsistentes, tipos incorrectos, espacios en blanco
- Limpieza de nombres con
janitor::clean_names() - Valores faltantes (
NA): ¿cuántos hay? ¿dónde están? ¿qué hacer con ellos? - Tipos de variables: numéricas, categóricas (
factor), fechas
Paquetes introducidos: datawizard, janitor
Ejercicio práctico: Importar una base de datos con problemas comunes (nombres inconsistentes, NAs, tipos incorrectos), diagnosticar los problemas y aplicar una limpieza básica.
8 Sesión 3 — ¿Cómo filtro, resumo y respondo preguntas con mis datos?
Duración: 2 horas
Problema que resuelve: Tengo una tabla con miles de filas y necesito extraer solo lo que me interesa, calcular totales por grupo, o crear nuevas columnas a partir de las existentes.
Objetivos:
- Filtrar filas y seleccionar columnas
- Crear nuevas variables y transformar existentes
- Calcular resúmenes por grupo
Contenidos:
- El pipe
|>: encadenar pasos de análisis de forma legible - Verbos de
dplyrorientados a tareas concretas:filter()— “quiero solo las filas donde…”select()— “quiero solo estas columnas”mutate()— “quiero crear una nueva columna que…”arrange()— “quiero ordenar por…”group_by()+summarise()— “quiero calcular… por grupo”
count()— contar registros por categoríaacross()— aplicar la misma operación a varias columnas- Casos de uso reales: calcular promedios por especie, crear índices, filtrar por fecha
Paquetes introducidos: dplyr
Ejercicio práctico: A partir de una base de datos de registros biológicos, responder preguntas concretas: ¿cuántos registros hay por especie? ¿cuál es la temperatura media por sitio? ¿qué especies tienen más de 10 registros?
9 Sesión 4 — ¿Cómo junto y reestructuro mis bases de datos?
Duración: 2 horas
Problema que resuelve: Tengo mis datos en varias tablas separadas y necesito combinarlas. O tengo una tabla en un formato que no sirve para graficar o analizar.
Objetivos:
- Combinar tablas con joins
- Transformar datos entre formato largo y ancho
- Separar y unir columnas
Contenidos:
- ¿Por qué los datos están en varias tablas? Bases de datos relacionales
- Joins en
dplyrcon ejemplos visuales:left_join()— “agrega información de otra tabla a la mía”inner_join()— “quédate solo con los que están en ambas”full_join()— “conserva todo aunque no haya coincidencia”anti_join()— “quiero los que NO están en la otra tabla”
- Datos en formato largo vs ancho: ¿cuándo usar cada uno?
pivot_longer()— preparar datos paraggplot2pivot_wider()— crear tablas resumenseparate_wider_delim()yunite()— dividir y unir columnas
Paquetes introducidos: tidyr
Ejercicio práctico: Combinar una tabla de presencias de especies con una tabla de sitios usando left_join(), luego transformar los datos a formato largo para prepararlos para visualización.
10 Sesión 5 — ¿Cómo comunico mis datos visualmente?
Duración: 2 horas
Problema que resuelve: Necesito hacer gráficos claros y publicables que cuenten una historia con mis datos, no solo gráficos por defecto.
Objetivos:
- Crear visualizaciones con
ggplot2usando la gramática de gráficos - Personalizar colores, temas y escalas
- Comparar grupos con facetas
Contenidos:
- La gramática de gráficos: datos + estéticas + geometrías
- Estructura básica:
ggplot(data, aes(x, y)) + geom_*() - Geometrías según el tipo de pregunta:
- Distribuciones:
geom_histogram(),geom_density(),geom_boxplot(),geom_violin() - Comparaciones:
geom_col(),geom_bar() - Relaciones:
geom_point(),geom_line(),geom_smooth()
- Distribuciones:
- Colores con significado:
scale_fill_*(),scale_color_*() - Paletas:
viridis,RColorBrewer,ggthemes - Temas:
theme_minimal(),theme_classic() - Facetas para comparar grupos:
facet_wrap(),facet_grid() - Títulos, etiquetas y anotaciones con
labs()yannotate()
Paquetes introducidos: ggplot2, ggthemes, RColorBrewer
Ejercicio práctico: Crear tres gráficos que respondan preguntas concretas sobre una base de datos: una distribución, una comparación entre grupos y una relación entre dos variables. Personalizar colores y tema para uso en una presentación.
11 Sesión 6 — ¿Cómo genero un reporte profesional con mis resultados?
Duración: 2 horas
Problema que resuelve: Necesito entregar un informe, preparar una presentación o publicar mis resultados, y quiero que el documento se actualice automáticamente si los datos cambian.
Objetivos:
- Componer múltiples gráficos en un panel
- Crear gráficos interactivos
- Generar tablas profesionales
- Producir un reporte reproducible con Quarto
Contenidos:
- Componer paneles de gráficos con
patchwork - Exportar gráficos en alta resolución con
ggsave() - Gráficos interactivos con
plotly::ggplotly() - Tablas profesionales con
tinytable: colores, formato y estilo - Estructura de un documento Quarto: YAML, texto Markdown y chunks de código
- Opciones clave de chunks:
echo,fig-cap,fig-width - Reportes dinámicos con
params: el mismo documento para distintas especies, sitios o períodos - Formatos de salida: HTML, PDF, Word
- Publicación en Quarto Pub o Netlify
Paquetes introducidos: patchwork, plotly, tinytable
Proyecto integrador: Cada participante genera un reporte reproducible en Quarto con sus propios datos (o un conjunto de datos de ejemplo), que incluye importación, limpieza, transformación, visualización y narrativa interpretativa.
12 Requisitos
- Computadora personal con últimas versiones de R y RStudio instalados
- Quarto instalado (
quarto.org) - No se requiere experiencia previa en programación ni estadística
12.1 Instalación de paquetes
install.packages(c(
"tidyverse",
"easystats",
"janitor",
"ggthemes",
"patchwork",
"RColorBrewer",
"plotly",
"tinytable",
"here"
))13 Referencias
Wickham, H. (2014). Tidy Data. Journal of Statistical Software, 59(10), 1–23. https://doi.org/10.18637/jss.v059.i10
Wickham, H., Çetinkaya-Rundel, M. & Grolemund, G. (2023). R for Data Science (2nd ed.). O’Reilly. https://r4ds.hadley.nz
Wilkinson, L. (2005). The Grammar of Graphics (2nd ed.). Springer.
Allaire, J.J. et al. (2024). Quarto. https://quarto.org