A partir del nacimientos, extrae sólo los datos de los
nacidos en enero, febrero y marzo de 2023.
Para cada uno de esos tres meses, calcula:
El número total de nacimientos,
El peso promedio al nacer,
El porcentaje de madres que hablan lengua indígena.
Guarda el resultado en un nuevo data frame llamado resumen_trimestre_1.
library(readr)
library(dplyr)
library(ggplot2)
library(lubridate)
resumen_trimestre_1 <- nacimientos4.2 %>%
select(FECHANACIMIENTO,
PESO,
HABLALENGUAINDIGENA) %>%
mutate(fechaform=dmy(FECHANACIMIENTO),
anofechnac=year(fechaform),
mesfechanac=month(fechaform),
mes=case_when(mesfechanac == 1 ~ "Enero",
mesfechanac == 2 ~ "Febrero",
mesfechanac == 3 ~ "Marzo")) %>%
filter(mes %in% c("Enero","Febrero","Marzo")) %>%
group_by(mes) %>%
summarise(total_nacimientos = n(),
peso_promedio = mean(PESO, na.rm=TRUE),
porcentaje_habla_lengua_indigena = mean(HABLALENGUAINDIGENA == "1", na.rm=TRUE) * 100)
resumen_trimestre_1
## # A tibble: 3 × 4
## mes total_nacimientos peso_promedio porcentaje_habla_lengua_indigena
## <chr> <int> <dbl> <dbl>
## 1 Enero 129966 3500. 6.63
## 2 Febrero 112738 3480. 6.57
## 3 Marzo 126580 3476. 6.70
Genera el data frame nacimientos_nl (sólo Nuevo León) y
crea una nueva variable rango_edad con estas
categorías:
“< 18”
“18–24”
“25–34”
“≥ 35”
Renombra las columnas (de 5-8 columnas) clave a minúsculas y con guiones bajos.
Exporta el resultado con write_csv() a un archivo llamado nacimientos_nl_edad_por_rango.csv.
nacimientos_nl <- nacimientos4.2 %>%
filter(ENTIDADFEDERATIVAPARTO == 19) %>%
select(EDAD,
EDADPADRE,
TALLA,
NUMEROEMBARAZOS,
PESO,
HIJOSNACIDOSVIVOS,
TOTALCONSULTAS) %>%
rename(edad_madre = EDAD,
edad_padre = EDADPADRE,
talla = TALLA,
num_embarazos = NUMEROEMBARAZOS,
peso = PESO,
hijos_nacidos_vivos = HIJOSNACIDOSVIVOS,
total_consultas = TOTALCONSULTAS) %>%
mutate(rango_edad = case_when(edad_madre < 18 ~ "< 18",
edad_madre >= 18 & edad_madre <= 24 ~ "18-24",
edad_madre >= 25 & edad_madre <= 34 ~ "25-34",
edad_madre >= 35 ~ ">= 35")) %>%
group_by(rango_edad) %>%
summarise(edad_padre =mean(edad_padre, na.rm=TRUE),
talla=mean(talla, na.rm=TRUE),
num_embarazos=mean(num_embarazos, na.rm=TRUE),
peso=mean(peso, na.rm=TRUE),
hijos_nacidos_vivos=mean(hijos_nacidos_vivos, na.rm=TRUE),
total_consultas=mean(total_consultas,na.rm=TRUE))
nacimientos_nl
## # A tibble: 4 × 7
## rango_edad edad_padre talla num_embarazos peso hijos_nacidos_vivos
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 18-24 31.1 49.7 1.71 3339. 1.55
## 2 25-34 34.7 49.7 2.51 3354. 2.22
## 3 < 18 47.4 49.4 1.13 3241. 1.08
## 4 >= 35 41.0 49.4 3.09 3368. 2.66
## # ℹ 1 more variable: total_consultas <dbl>
Con el data frame nacimientos, crea un gráfico de barras
(geom_col()) de total_personas por cada categoría de
estado_conyugal.
nacimientos_estado_conyugal <- nacimientos4.2 %>%
select(ESTADOCONYUGAL) %>%
mutate(estado_conyugal = case_when(ESTADOCONYUGAL == 0 ~ "No especificado",
ESTADOCONYUGAL == 1 ~ "Soltera",
ESTADOCONYUGAL == 2 ~ "Viuda",
ESTADOCONYUGAL == 3 ~ "Divorciada",
ESTADOCONYUGAL == 4 ~ "Unión libre",
ESTADOCONYUGAL == 5 ~ "Casada",
ESTADOCONYUGAL == 6 ~ "Separada",
ESTADOCONYUGAL == 8 ~ "No aplica",
ESTADOCONYUGAL == 9 ~ "Se ignora")) %>%
group_by(estado_conyugal) %>%
summarise(total_nacimientos=n())
ggplot(data=nacimientos_estado_conyugal, aes(x=estado_conyugal, y=total_nacimientos, fill=estado_conyugal)) +
geom_col()+
labs(title="Número de personas por estado conyugal",
x="Estado conyugal",
y="Número de personas") +
theme_minimal()
Después, usando el objeto original nacimientos, haz un scatterplot de EDAD vs. NUMEROEMBARAZOS, coloreando por estado_conyugal.
Sobre ese scatterplot, añade una línea de tendencia (geom_smooth) que muestre la tendencia de número de embarazos en función de la edad.
ggplot(data=nacimientos4.2, aes(x=EDAD, y=NUMEROEMBARAZOS, color=factor(ESTADOCONYUGAL))) +
geom_point() +
geom_smooth(method="lm", se=FALSE, color="red") +
scale_color_manual(values= c("coral1","darkorange","gold","darkolivegreen2","skyblue","purple","hotpink","black","coral3"), labels = c("No especificado","Soltera", "Viuda","Divorciada","Unión libre","Casada","Separada","No aplica", "Se ignora")) +
labs(title="Relación entre edad y número de embarazos",
x="Edad de la madre",
y="Número de embarazos",
color="Estado conyugal") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'