Vamos a analizar la base de datos del Ministerio de Educación sobre la población en el año 2025.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.3     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
base_educacion <- read_csv2("~/Documents/Facultad/Investigación Empírica/Trabajo Final/2025 Poblacion - agregada(in).csv"
                            )
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## Rows: 1217 Columns: 147── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr   (4): provincia, departamento, sector, ambito
## dbl (142): Localizacion, PoblaciónIndigenaInicial, PoblaciónIndigenaPrimaria...
## lgl   (1): IdiomasSecundariaChino
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Ahora vamos a ver filtrar los datos que correspondan al nivel primario

names(base_educacion) |> 
  grep("Primaria", x = _, value = TRUE)
##  [1] "PoblaciónIndigenaPrimaria"                    
##  [2] "IdiomasPrimariaInglés"                        
##  [3] "IdiomasPrimariaFrancés"                       
##  [4] "IdiomasPrimariaPortugués"                     
##  [5] "IdiomasPrimariaItaliano"                      
##  [6] "IdiomasPrimariaAlemán"                        
##  [7] "IdiomasPrimariaHebreo"                        
##  [8] "IdiomasPrimariaLenguaindígena"                
##  [9] "IdiomasPrimariaLSA"                           
## [10] "IdiomasPrimariaChino"                         
## [11] "IdiomasPrimariaOtro"                          
## [12] "IdiomasPrimariaMásdeunIdioma"                 
## [13] "BoliviaPrimaria"                              
## [14] "BrasilPrimaria"                               
## [15] "ChilePrimaria"                                
## [16] "ColombiaPrimaria"                             
## [17] "EcuadorPrimaria"                              
## [18] "ParaguayPrimaria"                             
## [19] "PerúPrimaria"                                 
## [20] "UruguayPrimaria"                              
## [21] "VenezuelaPrimaria"                            
## [22] "OtrospaísesdeAméricaPrimaria"                 
## [23] "EuropaPrimaria"                               
## [24] "AsiaPrimaria"                                 
## [25] "ÁfricaPrimaria"                               
## [26] "OceaníaPrimaria"                              
## [27] "TenenciadecomputadoraPrimaria"                
## [28] "AlumnosconPromociónasistidaacompañadaPrimaria"
## [29] "AlumnosenjornadacompletaPrimaria"             
## [30] "AlumnosenjornadaextendidaPrimaria"            
## [31] "TurnoMañanaPrimaria"                          
## [32] "TurnoIntermedioPrimaria"                      
## [33] "TurnoTardePrimaria"                           
## [34] "TurnoDoblePrimaria"                           
## [35] "DiscapacidadConapoyoestatalPrimaria"          
## [36] "DiscapacidadConapoyoprivadoPrimaria"          
## [37] "DiscapacidadSinapoyoPrimaria"
base_primaria <- base_educacion |> 
  select(provincia, departamento,sector, ambito, Localizacion, IdiomasPrimariaInglés, IdiomasPrimariaLenguaindígena) |> 
  rename(ingles = IdiomasPrimariaInglés, 
         lengua_indigena = IdiomasPrimariaLenguaindígena
         )

Una vez que tenemos los datos de primaria, vamos a analizar aquellos lugares donde se estudia inglés y la lengua indígena.

base_primaria <- base_primaria |>
  mutate(
    tiene_ingles = !is.na(ingles),
    tiene_lengua_indigena = !is.na(lengua_indigena)
  )

glimpse(base_primaria)
## Rows: 1,217
## Columns: 9
## $ provincia             <chr> "Buenos Aires", "Buenos Aires", "Buenos Aires", …
## $ departamento          <chr> "25 DE MAYO", "25 DE MAYO", "25 DE MAYO", "9 DE …
## $ sector                <chr> "Estatal", "Estatal", "Privado", "Estatal", "Est…
## $ ambito                <chr> "Rural", "Urbano", "Urbano", "Rural", "Urbano", …
## $ Localizacion          <dbl> 49, 43, 9, 49, 36, 8, 27, 18, 21, 13, 18, 11, 25…
## $ ingles                <dbl> 325, 1260, 676, 397, 1811, 557, 97, 499, 128, 37…
## $ lengua_indigena       <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
## $ tiene_ingles          <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, …
## $ tiene_lengua_indigena <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,…
base_primaria |> 
  count(tiene_ingles)
## # A tibble: 2 × 2
##   tiene_ingles     n
##   <lgl>        <int>
## 1 FALSE          105
## 2 TRUE          1112
base_primaria |> 
  count(tiene_lengua_indigena)
## # A tibble: 2 × 2
##   tiene_lengua_indigena     n
##   <lgl>                 <int>
## 1 FALSE                  1063
## 2 TRUE                    154

Para este trabajo, nos vamos a quedar con la lengua índigena. Así, vamos a analizar por provincia y sus departamentos, cuánto se estudia esta lengua por sector urbano/rural.

base_provincia_ambito <- base_primaria |>
  group_by(provincia, ambito) |>
  summarise(
    total_lengua_indigena = sum(lengua_indigena, na.rm = TRUE),
    departamentos_con_oferta = sum(tiene_lengua_indigena),
    total_departamentos = n(),
    porcentaje_departamentos = departamentos_con_oferta / total_departamentos * 100,
    .groups = "drop"
  )

ggplot(base_provincia_ambito, aes(x = reorder(provincia, porcentaje_departamentos), 
                                    y = porcentaje_departamentos, 
                                    fill = ambito)) +
  geom_col(position = "dodge") +
  coord_flip() +
  labs(title = "Enseñanza de lengua indígena en primaria por provincia y ámbito",
       subtitle = "% de departamentos con oferta de lengua indígena",
       x = "Provincia", y = "Porcentaje de departamentos", fill = "Ámbito") +
  theme_minimal()

Ahora vamos a hacer lo mismo pero analizando si se enseña más la lengua en el sector privado o estatal.

base_provincia_sector <- base_primaria |>
  group_by(provincia, sector) |>
  summarise(
    total_lengua_indigena = sum(lengua_indigena, na.rm = TRUE),
    departamentos_con_oferta = sum(tiene_lengua_indigena),
    total_departamentos = n(),
    porcentaje_departamentos = departamentos_con_oferta / total_departamentos * 100,
    .groups = "drop"
  )


ggplot(base_provincia_sector, aes(x = reorder(provincia, porcentaje_departamentos), 
                                    y = porcentaje_departamentos, 
                                    fill = sector)) +
  geom_col(position = "dodge") +
  coord_flip() +
  labs(title = "Enseñanza de lengua indígena en primaria por provincia y sector",
       subtitle = "% de departamentos con oferta de lengua indígena",
       x = "Provincia", y = "Porcentaje de departamentos", fill = "Sector") +
  theme_minimal()

Es importante destacar que como hay una diferencia en la cantidad de observaciones entre la Base de Provincia por ámbito y la Base de Provincia por sector. Esto se debe a que hay una de las provincias que sólo es rural o urbano y no ambas.

base_primaria |>
  distinct(provincia, ambito) |>
  count(provincia) |>
  filter(n < 2)
## # A tibble: 1 × 2
##   provincia                  n
##   <chr>                  <int>
## 1 Ciudad de Buenos Aires     1