En esta sección, utilizaremos los comandos de tidyverse de la plataforma R para la visualización de datos. Los paquetes y conjuntos de datos a ser utilizados en esta sección son:
library(tidyverse)
who <- read_csv("data/who.csv")
https://drive.google.com/drive/folders/1fFZZHqKBNJcVfp9Jwl-trLkZVsonETt_?usp=drive_link
https://upch-r4pubh.netlify.app/ggplot
✅ 1. Gráfico de dispersión
Comparar dos variables numéricas: esperanza de vida vs gasto en salud.
ggplot(who, aes(x = health_expenditure_gdp, y = life_expectancy_birth)) +
geom_point(color = "darkblue", size = 2, alpha = 0.7) +
labs(
title = "Esperanza de vida vs Gasto en salud (% del PBI)",
x = "Gasto en salud (% del PBI)",
y = "Esperanza de vida al nacer"
) +
theme_minimal()
✅ 2. Boxplot
Comparar distribución de esperanza de vida por continente:
ggplot(who, aes(x = continent, y = life_expectancy_birth, fill = continent)) +
geom_boxplot() +
labs(
title = "Esperanza de vida por continente",
x = "Continente",
y = "Esperanza de vida"
) +
theme_minimal()
✅ 3. Gráfico de barras
Número de países por continente:
ggplot(who, aes(x = continent)) +
geom_bar(fill = "steelblue") +
labs(
title = "Número de países por continente",
x = "Continente",
y = "Cantidad"
) +
theme_minimal()
✅ 4. Histograma
Distribución de la mortalidad infantil:
ggplot(who, aes(x = infant_mortality_rate)) +
geom_histogram(binwidth = 10, fill = "tomato", color = "white") +
labs(
title = "Distribución de la mortalidad infantil",
x = "Mortalidad infantil",
y = "Frecuencia"
) +
theme_minimal()
✅ 5. Gráfico con etiquetas (países destacados)
Esperanza de vida vs gasto en salud, destacando países con texto:
ggplot(who, aes(x = health_expenditure_person, y = life_expectancy_birth)) +
geom_point(alpha = 0.6) +
geom_text(aes(label = ifelse(life_expectancy_birth > 80, country, "")), hjust = 1, vjust = 1) +
labs(
title = "Países con alta esperanza de vida y gasto en salud",
x = "Gasto en salud per cápita",
y = "Esperanza de vida"
) +
theme_minimal()
🧹 Pasos básicos para limpieza de datos en R (usando tidyverse)
Primero, asegúrate de tener cargado el paquete tidyverse:
install.packages("tidyverse") # Solo la primera vez
library(tidyverse)
1. 📥 Cargar tus datos
data <- read_csv("tus_datos.csv") # También puedes usar read_excel() o read.table()
2. 👀 Explorar el dataset
glimpse(data)
summary(data)
head(data)
3. 🧼 Renombrar variables
data <- data %>%
rename(edad = EDAD_PACIENTE, sexo = SEXO)
4. 🗑️ Eliminar columnas innecesarias
data <- data %>%
select(-columna_innecesaria1, -columna_innecesaria2)
5. ❓ Reemplazar valores NA o vacíos
# Ver cuántos NA hay por columna
colSums(is.na(data))
# Eliminar filas con NA
data <- na.omit(data)
# O reemplazar NA por un valor específico
data <- data %>%
mutate(edad = if_else(is.na(edad), 0, edad))
6. 🧹 Filtrar datos inválidos o inconsistentes
# Quitar edades negativas
data <- data %>%
filter(edad >= 0)
# Mantener solo sexo válido
data <- data %>%
filter(sexo %in% c("M", "F"))
7. 🔤 Convertir variables a su tipo correcto
data <- data %>%
mutate(
sexo = as.factor(sexo),
edad = as.numeric(edad),
fecha_ingreso = as.Date(fecha_ingreso, format = "%Y-%m-%d")
)
8. 🔁 Recodificar variables
data <- data %>%
mutate(
sexo = recode(sexo, "M" = "Masculino", "F" = "Femenino")
)
9. ✨ Verificar resultados
str(data)
summary(data)