Identificación de entidades federativas de estudiantes de la Maestría en Economía BUAP

Utilizaremos la estructura de control case_when() para imputar el nombre de la entidad federativa (o país) a cada uno de los alumnos de las diferentes generaciones de la maestría en economía de la BUAP, tomando como referencia el catálogo del INEGI.

# Cargar la librería necesaria
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.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
# Crear los vectores correspondientes
nombre <- c("Alam", "Enrique", "Eddy", "César", "Marcel", "Surya", "Jany", "Yubi", "Noelia", "Michelle", "Juan", "Christian")
edad <- c(32, 27, 35, 35, 26, 32, 29, 24, 39, 40, 50, 30)
estatura <- c(1.73, 1.75, 1.7, 1.74, 1.55, 1.56, 1.65, 1.58, 1.59, 1.6, 1.7, 1.72)
estado <- c(21, 21, 21, 30, 30, 30, 200, 200, 21, 13, 14, 19)

# Convertir en data frame
data <- data.frame(nombre, edad, estatura, estado)

# Inspeccionar la estructura de los datos
str(data)
## 'data.frame':    12 obs. of  4 variables:
##  $ nombre  : chr  "Alam" "Enrique" "Eddy" "César" ...
##  $ edad    : num  32 27 35 35 26 32 29 24 39 40 ...
##  $ estatura: num  1.73 1.75 1.7 1.74 1.55 1.56 1.65 1.58 1.59 1.6 ...
##  $ estado  : num  21 21 21 30 30 30 200 200 21 13 ...
data
##       nombre edad estatura estado
## 1       Alam   32     1.73     21
## 2    Enrique   27     1.75     21
## 3       Eddy   35     1.70     21
## 4      César   35     1.74     30
## 5     Marcel   26     1.55     30
## 6      Surya   32     1.56     30
## 7       Jany   29     1.65    200
## 8       Yubi   24     1.58    200
## 9     Noelia   39     1.59     21
## 10  Michelle   40     1.60     13
## 11      Juan   50     1.70     14
## 12 Christian   30     1.72     19

Ahora utilizaremos mutate() junto con case_when() para crear una nueva columna que identifique el nombre de la entidad federativa según el catálogo del INEGI.

# Crear nueva base de datos con la identificación de entidades federativas
datanew <- data %>%
  mutate(estado_origen = case_when(
    estado == 1 ~ "Aguascalientes",
    estado == 2 ~ "Baja California",
    estado == 3 ~ "Baja California Sur",
    estado == 4 ~ "Campeche",
    estado == 5 ~ "Coahuila de Zaragoza",
    estado == 6 ~ "Colima",
    estado == 7 ~ "Chiapas",
    estado == 8 ~ "Chihuahua",
    estado == 9 ~ "Distrito Federal",
    estado == 10 ~ "Durango",
    estado == 11 ~ "Guanajuato",
    estado == 12 ~ "Guerrero",
    estado == 13 ~ "Hidalgo",
    estado == 14 ~ "Jalisco",
    estado == 15 ~ "México",
    estado == 16 ~ "Michoacán de Ocampo",
    estado == 17 ~ "Morelos",
    estado == 18 ~ "Nayarit",
    estado == 19 ~ "Nuevo León",
    estado == 20 ~ "Oaxaca",
    estado == 21 ~ "Puebla",
    estado == 22 ~ "Querétaro",
    estado == 23 ~ "Quintana Roo",
    estado == 24 ~ "San Luis Potosí",
    estado == 25 ~ "Sinaloa",
    estado == 26 ~ "Sonora",
    estado == 27 ~ "Tabasco",
    estado == 28 ~ "Tamaulipas",
    estado == 29 ~ "Tlaxcala",
    estado == 30 ~ "Veracruz de Ignacio de la Llave",
    estado == 31 ~ "Yucatán",
    estado == 32 ~ "Zacatecas",
    estado == 200 ~ "Otro país de América"
  ))
datanew
##       nombre edad estatura estado                   estado_origen
## 1       Alam   32     1.73     21                          Puebla
## 2    Enrique   27     1.75     21                          Puebla
## 3       Eddy   35     1.70     21                          Puebla
## 4      César   35     1.74     30 Veracruz de Ignacio de la Llave
## 5     Marcel   26     1.55     30 Veracruz de Ignacio de la Llave
## 6      Surya   32     1.56     30 Veracruz de Ignacio de la Llave
## 7       Jany   29     1.65    200            Otro país de América
## 8       Yubi   24     1.58    200            Otro país de América
## 9     Noelia   39     1.59     21                          Puebla
## 10  Michelle   40     1.60     13                         Hidalgo
## 11      Juan   50     1.70     14                         Jalisco
## 12 Christian   30     1.72     19                      Nuevo León

¿Identificó qué hizo mutate() a su data frame?

La función mutate() del paquete dplyr (parte de tidyverse) agregó una nueva columna llamada estado_origen al data frame original data, creando así el nuevo data frame datanew.

Lo que hace mutate() específicamente es:

Toma el data frame original (data)

Crea una nueva variable (estado_origen)

Asigna valores a esta nueva variable según las condiciones especificadas en case_when()

Devuelve un nuevo data frame (datanew) con todas las columnas originales más la nueva columna