Cuando se cuenta con una guía en una base de datos que contiene la codificación para una variable incluida en una segunda base de datos en la cual está codificada de forma numérica se puede recodificar con la información de la guía de la siguiente forma.
La guía se encuentra en la base de datos edos
la base de datos a recodificar se denomina base
y se genera a continuación con 1000 registros para la variable Estado la cual contiene datos aleatorios con los números del 1 al 32 correspondientes a los 32 estados de la República Mexicana.
base <- data.frame(Estado = sample(1:32, 1000, replace = T))
De esta forma tenemos la base edos
que contiene 32:
edos
Estado
1 AGUASCALIENTES
2 BAJA CALIFORNIA
3 BAJA CALIFORNIA SUR
4 CAMPECHE
5 CHIAPAS
6 CHIHUAHUA
7 COAHUILA
8 COLIMA
9 DISTRITO FEDERAL
10 DURANGO
11 GUANAJUATO
12 GUERRERO
13 HIDALGO
14 JALISCO
15 MEXICO (EDO. DE)
16 MICHOACAN
17 MORELOS
18 NAYARIT
19 NUEVO LEON
20 OAXACA
21 PUEBLA
22 QUERETARO
23 QUINTANA ROO
24 SAN LUIS POTOSI
25 SINALOA
26 SONORA
27 TABASCO
28 TAMAULIPAS
29 TLAXCALA
30 VERACRUZ
31 YUCATAN
32 ZACATECAS
Y la base de datos a recodificar:
str(base)
'data.frame': 1000 obs. of 1 variable:
$ Estado: int 19 19 16 15 10 18 21 29 23 30 ...
table(base$Estado)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
35 28 32 28 27 36 31 28 28 18 36 28 32 36 42 27 29 34 32 35 38 28 32 29 24
26 27 28 29 30 31 32
31 39 38 27 34 33 25
Para recodificar la variable Estado
en la base
se convierte a factor, indicando como etiquetas los niveles del factor en la guía edos
.
base$Estado <- factor(base$Estado, labels = levels(edos$Estado))
str(base)
'data.frame': 1000 obs. of 1 variable:
$ Estado: Factor w/ 32 levels "AGUASCALIENTES",..: 19 19 16 15 10 18 21 29 23 30 ...
table(base$Estado)
AGUASCALIENTES BAJA CALIFORNIA BAJA CALIFORNIA SUR
35 28 32
CAMPECHE CHIAPAS CHIHUAHUA
28 27 36
COAHUILA COLIMA DISTRITO FEDERAL
31 28 28
DURANGO GUANAJUATO GUERRERO
18 36 28
HIDALGO JALISCO MEXICO (EDO. DE)
32 36 42
MICHOACAN MORELOS NAYARIT
27 29 34
NUEVO LEON OAXACA PUEBLA
32 35 38
QUERETARO QUINTANA ROO SAN LUIS POTOSI
28 32 29
SINALOA SONORA TABASCO
24 31 39
TAMAULIPAS TLAXCALA VERACRUZ
38 27 34
YUCATAN ZACATECAS
33 25