library(tidyverse)
library(here)
library(rworldmap)
library(ggthemes)
Lectura de datos:
student_ratio <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-05-07/student_teacher_ratio.csv")
Limpieza de datos y cálculo del promedio:
mediaEducacionSecundaria <- student_ratio %>%
filter(!is.na(student_ratio))%>%
group_by(country_code,indicator)%>%
filter((year==2015) & (indicator %in% c('Secondary Education','Lower Secondary Education', 'Upper Secondary Education')))%>%
ungroup()%>%
group_by(country_code, country)%>%
mutate(promedio = round(median(student_ratio, na.rm = FALSE),2),pais= country )
Verifico los nombres de ‘mediaEducacionSecundaria’ y los comparo con los datos de map_data(“world”)
anti_join(mediaEducacionSecundaria, map_data("world"), by = c("country" = "region")) %>% View()
Es necesario modificar algunos nombres de países para luego relacionarlos con los datos del mapa:
EducacionSecundaria_fixed <- mediaEducacionSecundaria %>%
mutate(pais = recode(country,
"United States of America" = "USA",
"Viet Nam" = "Vietnam",
"British Virgin Islands" = "Virgin Islands",
"United Republic of Tanzania" = "Tanzania",
"Syrian Arab Republic" = "Syria",
"Russian Federation" = "Russia",
"Democratic People's Republic of Korea" = "North Korea",
"The former Yugoslav Republic of Macedonia" = "Macedonia",
"Republic of Moldova" = "Moldova",
"Republic of Korea" = "South Korea",
"Côte d'Ivoire" = "Ivory Coast",
"Iran (Islamic Republic of)" = "Iran",
"United Kingdom of Great Britain and Northern Ireland" = "UK",
"Micronesia (Federated States of)" = "Micronesia",
"Czechia" = "Czech Republic",
"Cabo Verde" = "Cape Verde",
"Congo" = "Democratic Republic of the Congo",
"Brunei Darussalam" = "Brunei",
"Bolivia (Plurinational State of)" = "Bolivia",
"Oceania"= "Australia",
"Lao People's Democratic Republic"= "Laos"))
# vuelvo a verificar los valores
anti_join(EducacionSecundaria_fixed, map_data("world"), by = c("pais" = "region"))
## # A tibble: 76 x 10
## # Groups: country_code, country [41]
## edulit_ind indicator country_code country year student_ratio flag_codes
## <chr> <chr> <chr> <chr> <dbl> <dbl> <chr>
## 1 PTRHC_2T3 Secondar~ 40042 Lower ~ 2015 23.4 <NA>
## 2 PTRHC_2T3 Secondar~ 40510 World 2015 17.4 <NA>
## 3 PTRHC_2T3 Secondar~ 40041 High i~ 2015 12.7 <NA>
## 4 PTRHC_2T3 Secondar~ SWZ Eswati~ 2015 15.8 <NA>
## 5 PTRHC_2T3 Secondar~ 40520 Latin ~ 2015 16.4 <NA>
## 6 PTRHC_2T3 Secondar~ 40030 Middle~ 2015 18.5 <NA>
## 7 PTRHC_2T3 Secondar~ 40535 South ~ 2015 29.7 <NA>
## 8 PTRHC_2T3 Secondar~ 40515 East A~ 2015 15.1 <NA>
## 9 PTRHC_2T3 Secondar~ 40540 Sub-Sa~ 2015 21.2 ‡
## 10 PTRHC_2T3 Secondar~ 40530 Centra~ 2015 10.9 <NA>
## # ... with 66 more rows, and 3 more variables: flags <chr>,
## # promedio <dbl>, pais <chr>
Uno los datos de educación secundaria con los datos del mapa para graficarlos:
mi_mapaSE <- EducacionSecundaria_fixed %>%
full_join(map_data("world"), by = c("pais" = "region")) %>%
filter(!grepl("Antarctica",pais))
Visualización:
ggplot(mi_mapaSE, aes(x = long, y = lat)) +
geom_polygon(aes(fill = promedio, group = group), color = "black", size = 0.2) +
scale_fill_continuous_tableau() + #gray80
theme_fivethirtyeight() +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.title = element_text(family ="Fira Mono" ,
# hjust = 0.5,
size=18,colour = '#3B9AB2', #
face = 'bold'),) +
labs(fill = "proporción a/p",
title = "Promedio de la proporción alumno-profesor (A/P)",
subtitle="Calculado con datos del nivel secundario del año 2015",
caption = str_c(str_wrap("El promedio de la proporción alumno-profesor fue calculado teniendo en cuenta los datos del año 2015 correspondientes al nivel de educación secundaria. Los países que se muestran en celeste tienen un ratio más pequeño, mientras que los países que se muestran en azul tienen un ratio más alto, es decir, menos favorable). El color gris indica datos faltantes.", width = 110),"\n \nData Source: UNESCO\nVisualización: @patriloto"))
ggsave("relacionEstudiantesProfesores3.png", width = 7.4, height = 4.5, dpi = "retina")