library(ggplot2)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = cty, color = class)) +
facet_wrap(~ cyl)
PRIA práctica 3: Introducción al data Wrangling y visualización con R
Data Wrangling
El data wrangling es un término ampliamente utilizado en la ciencia de datos para describir el proceso de preparación de datos crudos (raw) para su análisis. Este proceso implica varias acciones claves:
- Recopilar: Implica reunir datos de diversas fuentes y formatos.
- Integrar: Conlleva combinar datos de diferentes fuentes para obtener una vista unificada.
- Limpiar: Se refiere a encontrar y corregir errores o inconsistencias en los datos para asegurar su calidad.
- Transformar: Consiste en cambiar la estructura de los datos para facilitar su manipulación o análisis.
- Enriquecer: Se añade información adicional a los datos para aumentar su utilidad o precisión.
- Filtrar: Incluye eliminar datos irrelevantes o redundantes para enfocarse en la información más valiosa.
- Agilizar: Se busca mejorar la accesibilidad y eficiencia de los datos para el análisis.
El objetivo del data wrangling es transformar datos desorganizados o en bruto en un conjunto estructurado y limpio, listo para ser analizado y utilizado en la toma de decisiones basada en datos.
Como científico de datos, enfrentarás el desafío de convertir conjuntos de datos complejos y a menudo no estructurados en insights útiles. Estos insights son cruciales para las decisiones de negocio, y preparar los datos adecuadamente es un paso que no se debe subestimar.
Data Wrangling with dplyr and tidyr Cheat Sheet
1. El dataset Gapminder
- 1 Instala y carga la librería
gapminder
.
1.2 Usa la función help
para entender los datos. Explóralo con glimpse
, como alternativa a str
. Compara ambas salidas. ¿Cuál prefieres? Razona tu respuesta
2. Verbos dplyr
2.1 Usa filter
para filtrar por el año 1952 y guarda el resultado en la variable gm_1952.
2.2 Filtra por país (China) y por año (2002) y guarda el resultado en la variable china_2002
2.3 Ordena por lifExp en ambos sentidos. Localiza el año más reciente con datos y filtra por éste. ¿Qué países son los extremos?
2.4 Crea una nueva columna popM, con la población en millones de habitantes.
2.5 Extrae los 10 países con mayor población, expresados en millones de habitantes en el año 2007. Filtra por esos 10 países y extrae la población de los mismos en 1957.
2.6 Encuentra el promedio de esperanza de vida (lifeExp) para cada continente y resúmelo en una tabla.
2.7 Añade una columna llamada gdpPercapLog que sea el logaritmo de gdpPercap, luego organiza los datos por esta nueva columna de forma descendente.
2.8 Filtra los países donde la expectativa de vida lifeExp es mayor que 80 años.
2.9 Calcula la suma del PIB (gdpPercap * pop) para cada país y año, agrupando por país y año.
2.10 Crea una nueva columna que clasifique a los países en ‘Alto PIB per cápita’ si gdpPercap es mayor que 10000, y ‘Bajo PIB per cápita’ en caso contrario.
2.11 Utiliza mutate_if para transformar todas las columnas numéricas aplicando el logaritmo natural, pero sólo si todas las entradas en esa columna son positivas.
2.12 Para cada continente, encuentra el país con la mayor población (pop) cada año.
2.13 Obten el mínimo, el máximo y la media de la esperanza de vida (lifeExp) y el PIB per cápita (gdpPercap) por continente.
Visualización con ggplot 2
Gramática de los Gráficos con ggplot2
Componentes básicos
- Datos: El conjunto de datos que queremos visualizar.
- Aesthetics (Aes): Define las variables a utilizar y cómo se mapean a aspectos visuales como ejes, color, tamaño, etc.
- Geometrías (Geom): Las formas gráficas que representan los datos (puntos, líneas, barras).
- Escala: Controla cómo se mapean los datos a los aesthetics (por ejemplo, qué rango de colores usar, leyendas, etiquetas).
- Coordenadas: El sistema de coordenadas (Cartesiano, polar, etc.).
- Facetas: Para crear gráficos con múltiples paneles.
- Temas: Controla la apariencia no relacionada con los datos del gráfico (colores de fondo, tipos de letra, etc.).
Taller la gramática de los gráficos (Samuel Calderon)
ggplot(data = df, aes(x = var1, y = var2)) +
geom_point(aes(color = factor1)) +
labs(
title = "Título del Gráfico",
subtitle = "Subtítulo del Gráfico",
caption = "Fuente de los Datos",
x = "Etiqueta del Eje X",
y = "Etiqueta del Eje Y",
color = "Leyenda de Factor1"
)
3.1 Usando la variable gm_1952, crea un diagrama de dispersión donde se represente la renta per cápita en función de la población. Ahora la esperanza de vida en función de la población.
3.2 Aplica a las gráficas anteriores un escalado logarítmico (log10) en el eje x e y
3.3 Realiza un diagrama de dispersión de la esperanza de vida en función de la población, pero mapea la variable continent por color. Usa escalado para el eje x
3.4 Repite la representación anterior pero añade el mapeo de la renta per cápita por tamaño del punto
3.5 Ahora, en lugar de mapear por continente, utiliza contienente como variable “faceta” y genera 5 gráficas en un lienzo con la esperanza de vida en función de la población en 1952.
3.6 Representa la esperanza de vida en función del año, usando facetas (por continente). Utiliza la función de agregación apropiada. Expresa la población en millones de habitantes.Prueba diagramas de dispersión, líneas ó barras.
3.7 Representa la población total en función del año, usando facetas (por continente). Utiliza la función de agregación apropiada.
3.8 Representa en una sola gráfica, sin el uso de facetas, la información de los dos ejercicios anteriores, pero utiliza colores para mapear los continentes.
3.9 Representa la renta per cápita en 2007 mapeando los puntos del diagrama de dispersión por color según el contienente y por tamaño, según la población.
3.10 Representa la evolución de la renta per cápita año a año entre Japón vs EEUU en una gráfica de líneas.
3.11 Representa un diagrama de barras para comparar la renta per cápita en 2007 de europa vs EEUU+Canada.
3.12 Dibuja un histograma con los datos de la población mundial en 2007 según gapminder.
3.13 Modifica la gráfica usando escala logarítmica. Prueba realizar diagrama de densidad en lugar de un histograma.
3.14 Investiga el paquete esquisse
para crear gráficos sin código, usando los addins de RStudio. No es necesario instalarlo para la actividad, pero anota un enlace al vídeo o documentación que encuentres.
3.15 Representa el histograma y diagrama de densidad de la esperanza de vida mundial por países en 2007. ¿Es una distribución simétrica?
Realiza el experimento del teorema central del límite utilizando como variable la esperanza de vida en el año 2007 de todos los países que aparecen ese año en gapminder.
Toma muestras de n = 50 para calcular las medias y realiza 1000 réplicas de ese experimento para obtener las medias. Representa gráficamente el histograma y/o density plot. ¿La gráfica de las 1000 medias ahora sigue una distribución simétrica aproximadamente normal?