library(dplyr)
library(tidyr)
.csv
icfes_ancho <- read.csv("Saber_11__2018-2.csv", encoding = "UTF-8")
.Rdata
save(icfes_ancho, file = "Icfes_201802.Rdata", compress = "xz")
.Rdata
load("Icfes_201802.Rdata")
str(icfes_ancho)
## 'data.frame': 549934 obs. of 83 variables:
## $ ESTU_TIPODOCUMENTO : Factor w/ 9 levels "CC","CE","CR",..: 3 9 9 9 1 9 9 9 9 9 ...
## $ ESTU_NACIONALIDAD : Factor w/ 42 levels "AFGANISTÁN","ALBANIA",..: 15 15 15 15 15 15 15 15 15 15 ...
## $ ESTU_GENERO : Factor w/ 2 levels "F","M": 2 2 2 2 2 1 2 2 2 2 ...
## $ ESTU_FECHANACIMIENTO : Factor w/ 11818 levels "","01/01/1900",..: 3741 8523 7436 7761 6237 5212 8164 7636 9946 7799 ...
## $ PERIODO : int 20182 20182 20182 20182 20182 20182 20182 20182 20182 20182 ...
## $ ESTU_CONSECUTIVO : Factor w/ 549934 levels "SB11201820000001",..: 376152 492618 192856 470102 283318 213746 78094 497067 82724 189676 ...
## $ ESTU_ESTUDIANTE : Factor w/ 1 level "ESTUDIANTE": 1 1 1 1 1 1 1 1 1 1 ...
## $ ESTU_PAIS_RESIDE : Factor w/ 42 levels "AFGANISTÁN","ALBANIA",..: 15 15 15 15 15 15 15 15 15 15 ...
## $ ESTU_TIENEETNIA : Factor w/ 3 levels "-","No","Si": 2 2 2 2 2 3 3 2 2 2 ...
## $ ESTU_ETNIA : Factor w/ 21 levels "-","Arhuaco",..: 1 1 1 1 1 12 1 1 1 1 ...
## $ ESTU_LIMITA_MOTRIZ : Factor w/ 2 levels "-","x": 1 1 1 1 1 1 1 1 1 1 ...
## $ ESTU_DEPTO_RESIDE : Factor w/ 35 levels "-","AMAZONAS",..: 5 15 33 8 6 14 21 5 9 8 ...
## $ ESTU_COD_RESIDE_DEPTO : Factor w/ 35 levels "-","05","08",..: 3 11 25 6 4 13 15 3 7 6 ...
## $ ESTU_MCPIO_RESIDE : Factor w/ 1033 levels "-","ABEJORRAL",..: 871 478 133 953 101 286 971 667 513 259 ...
## $ ESTU_COD_RESIDE_MCPIO : Factor w/ 1116 levels "-","05001","05002",..: 146 440 1007 197 150 589 655 140 331 228 ...
## $ FAMI_ESTRATOVIVIENDA : Factor w/ 8 levels "-","Estrato 1",..: 3 2 3 4 3 1 8 8 3 2 ...
## $ FAMI_PERSONASHOGAR : Factor w/ 6 levels "-","1 a 2","3 a 4",..: 5 4 2 3 5 6 5 4 4 3 ...
## $ FAMI_CUARTOSHOGAR : Factor w/ 7 levels "-","Cinco","Cuatro",..: 3 4 4 6 6 4 6 4 3 7 ...
## $ FAMI_EDUCACIONPADRE : Factor w/ 13 levels "-","Educación profesional completa",..: 6 10 6 6 6 1 11 10 9 9 ...
## $ FAMI_EDUCACIONMADRE : Factor w/ 13 levels "-","Educación profesional completa",..: 6 8 13 2 6 1 11 10 11 9 ...
## $ FAMI_TRABAJOLABORPADRE : Factor w/ 14 levels "-","Es agricultor, pesquero o jornalero",..: 6 14 8 8 7 7 7 3 2 2 ...
## $ FAMI_TRABAJOLABORMADRE : Factor w/ 14 levels "-","Es agricultor, pesquero o jornalero",..: 6 13 6 4 13 7 13 13 13 11 ...
## $ FAMI_TIENEINTERNET : Factor w/ 3 levels "-","No","Si": 3 3 2 3 3 1 2 3 2 2 ...
## $ FAMI_TIENESERVICIOTV : Factor w/ 3 levels "-","No","Si": 3 3 2 3 3 1 2 3 3 2 ...
## $ FAMI_TIENECOMPUTADOR : Factor w/ 3 levels "-","No","Si": 2 2 2 3 2 2 2 3 2 2 ...
## $ FAMI_TIENELAVADORA : Factor w/ 3 levels "-","No","Si": 3 3 2 3 3 2 2 3 3 2 ...
## $ FAMI_TIENEHORNOMICROOGAS : Factor w/ 3 levels "-","No","Si": 2 2 3 3 3 2 2 3 2 2 ...
## $ FAMI_TIENEAUTOMOVIL : Factor w/ 3 levels "-","No","Si": 2 2 2 3 2 2 2 3 2 2 ...
## $ FAMI_TIENEMOTOCICLETA : Factor w/ 3 levels "-","No","Si": 3 3 2 2 2 2 3 2 3 3 ...
## $ FAMI_TIENECONSOLAVIDEOJUEGOS : Factor w/ 3 levels "-","No","Si": 2 2 2 3 2 2 2 3 2 2 ...
## $ FAMI_NUMLIBROS : Factor w/ 5 levels "-","0 A 10 LIBROS",..: 4 3 4 5 5 1 3 2 2 3 ...
## $ FAMI_COMELECHEDERIVADOS : Factor w/ 5 levels "-","1 o 2 veces por semana",..: 5 4 2 5 2 1 2 4 2 3 ...
## $ FAMI_COMECARNEPESCADOHUEVO : Factor w/ 5 levels "-","1 o 2 veces por semana",..: 5 2 3 5 2 1 2 3 5 2 ...
## $ FAMI_COMECEREALFRUTOSLEGUMBRE: Factor w/ 5 levels "-","1 o 2 veces por semana",..: 2 2 2 5 3 1 4 4 5 3 ...
## $ FAMI_SITUACIONECONOMICA : Factor w/ 4 levels "-","Igual","Mejor",..: 2 3 3 2 2 2 2 2 2 2 ...
## $ ESTU_DEDICACIONLECTURADIARIA : Factor w/ 6 levels "-","30 minutos o menos",..: 2 4 2 2 2 1 4 6 2 4 ...
## $ ESTU_DEDICACIONINTERNET : Factor w/ 6 levels "-","30 minutos o menos",..: 5 4 4 5 3 1 2 3 4 2 ...
## $ ESTU_HORASSEMANATRABAJA : Factor w/ 6 levels "-","0","Entre 11 y 20 horas",..: 2 2 2 2 6 5 2 6 6 6 ...
## $ ESTU_TIPOREMUNERACION : Factor w/ 5 levels "-","No","Si, en efectivo",..: 2 2 2 2 2 2 2 3 3 2 ...
## $ COLE_CODIGO_ICFES : int 122432 28704 112466 134692 80051 114181 144220 109033 174656 45443 ...
## $ COLE_COD_DANE_ESTABLECIMIENTO: num 1.08e+11 1.23e+11 2.76e+11 3.15e+11 3.11e+11 ...
## $ COLE_NOMBRE_ESTABLECIMIENTO : Factor w/ 9225 levels "ACAD AMERICANA DE SISTEMAS Y COMERCIO",..: 7028 4674 7204 8235 1585 4915 6216 7170 7709 5417 ...
## $ COLE_GENERO : Factor w/ 3 levels "FEMENINO","MASCULINO",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ COLE_NATURALEZA : Factor w/ 2 levels "NO OFICIAL","OFICIAL": 2 2 2 1 1 2 2 2 2 2 ...
## $ COLE_CALENDARIO : Factor w/ 3 levels "A","B","OTRO": 1 1 1 1 1 1 1 1 1 1 ...
## $ COLE_BILINGUE : Factor w/ 3 levels "-","N","S": 2 2 2 1 2 2 1 2 2 2 ...
## $ COLE_CARACTER : Factor w/ 5 levels "-","ACADÉMICO",..: 2 2 5 2 5 5 5 2 2 5 ...
## $ COLE_COD_DANE_SEDE : num 1.08e+11 1.23e+11 2.76e+11 3.15e+11 3.11e+11 ...
## $ COLE_NOMBRE_SEDE : Factor w/ 10034 levels "# 1","# 3 CICUCO",..: 6483 5437 3575 7955 2385 5536 6554 7232 7600 5784 ...
## $ COLE_SEDE_PRINCIPAL : Factor w/ 2 levels "N","S": 2 2 2 2 2 2 2 2 2 2 ...
## $ COLE_AREA_UBICACION : Factor w/ 2 levels "RURAL","URBANO": 2 2 1 2 2 1 1 1 1 1 ...
## $ COLE_JORNADA : Factor w/ 6 levels "COMPLETA","MAÑANA",..: 2 6 2 2 1 2 2 2 1 1 ...
## $ COLE_COD_MCPIO_UBICACION : int 8001 23417 76001 15001 11001 27250 44847 8573 17444 15806 ...
## $ COLE_MCPIO_UBICACION : Factor w/ 1030 levels "ABEJORRAL","ÁBREGO",..: 84 476 133 950 101 285 968 665 511 921 ...
## $ COLE_COD_DEPTO_UBICACION : int 8 23 76 15 11 27 44 8 17 15 ...
## $ COLE_DEPTO_UBICACION : Factor w/ 33 levels "AMAZONAS","ANTIOQUIA",..: 4 14 31 7 5 13 19 4 8 7 ...
## $ ESTU_PRIVADO_LIBERTAD : Factor w/ 2 levels "N","S": 1 1 1 1 1 1 1 1 1 1 ...
## $ ESTU_COD_MCPIO_PRESENTACION : int 8001 23417 76001 15001 11001 76109 44847 8001 17444 15238 ...
## $ ESTU_MCPIO_PRESENTACION : Factor w/ 463 levels "ABEJORRAL","ÁBREGO",..: 46 216 69 430 52 57 437 46 232 124 ...
## $ ESTU_DEPTO_PRESENTACION : Factor w/ 33 levels "AMAZONAS","ANTIOQUIA",..: 4 14 31 7 5 31 19 4 8 7 ...
## $ ESTU_COD_DEPTO_PRESENTACION : int 8 23 76 15 11 76 44 8 17 15 ...
## $ PUNT_LECTURA_CRITICA : int 63 54 59 61 56 28 45 30 50 43 ...
## $ PERCENTIL_LECTURA_CRITICA : int 84 54 72 79 64 1 24 1 42 19 ...
## $ DESEMP_LECTURA_CRITICA : int 3 3 3 3 3 1 2 1 2 2 ...
## $ PUNT_MATEMATICAS : int 69 50 43 60 51 35 49 37 63 51 ...
## $ PERCENTIL_MATEMATICAS : int 95 48 28 78 53 10 46 15 86 53 ...
## $ DESEMP_MATEMATICAS : int 3 2 2 3 3 1 2 2 3 3 ...
## $ PUNT_C_NATURALES : int 54 50 46 60 48 36 45 40 57 50 ...
## $ PERCENTIL_C_NATURALES : int 67 53 40 84 45 10 35 20 74 55 ...
## $ DESEMP_C_NATURALES : int 2 2 2 3 2 1 2 1 3 2 ...
## $ PUNT_SOCIALES_CIUDADANAS : int 57 40 45 67 49 37 33 40 48 50 ...
## $ PERCENTIL_SOCIALES_CIUDADANAS: int 76 28 43 94 55 19 9 29 53 59 ...
## $ DESEMP_SOCIALES_CIUDADANAS : int 3 1 2 3 2 1 1 1 2 2 ...
## $ PUNT_INGLES : int 65 48 47 63 56 37 50 40 59 48 ...
## $ PERCENTIL_INGLES : int 90 46 42 86 71 10 53 20 80 43 ...
## $ DESEMP_INGLES : Factor w/ 5 levels "A-","A1","A2",..: 3 2 1 3 2 1 2 1 3 2 ...
## $ PUNT_GLOBAL : int 305 242 241 310 257 171 218 185 274 242 ...
## $ PERCENTIL_GLOBAL : int 85 46 45 87 57 4 29 9 68 46 ...
## $ ESTU_NSE_ESTABLECIMIENTO : int 2 2 2 3 3 2 1 2 1 2 ...
## $ ESTU_INSE_INDIVIDUAL : num 53.2 45.1 44.8 73.6 49.4 ...
## $ ESTU_NSE_INDIVIDUAL : Factor w/ 5 levels "-","NSE1","NSE2",..: 4 3 3 5 3 2 2 4 2 2 ...
## $ ESTU_ESTADOINVESTIGACION : Factor w/ 3 levels "PRESENTE CON LECTURA TARDIA",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ ESTU_GENERACION.E : Factor w/ 4 levels "GENERACION E - EXCELENCIA DEPARTAMENTAL",..: 4 3 3 4 3 4 4 4 4 3 ...
icfes_ancho2 <- icfes_ancho %>%
# Seleccionando columnas
select(ESTU_TIPODOCUMENTO, ESTU_NACIONALIDAD, ESTU_GENERO,
ESTU_DEPTO_RESIDE, ESTU_MCPIO_RESIDE, FAMI_ESTRATOVIVIENDA,
COLE_JORNADA, FAMI_TIENEINTERNET, FAMI_TIENECOMPUTADOR,
FAMI_TIENECONSOLAVIDEOJUEGOS, FAMI_NUMLIBROS,
FAMI_COMECARNEPESCADOHUEVO, ESTU_DEDICACIONINTERNET,
ESTU_HORASSEMANATRABAJA, COLE_NATURALEZA, COLE_AREA_UBICACION,
PUNT_LECTURA_CRITICA, PUNT_MATEMATICAS, PUNT_C_NATURALES,
PUNT_SOCIALES_CIUDADANAS, PUNT_INGLES) %>%
# Filtrando datos sólo para Colombia
filter(ESTU_NACIONALIDAD == "COLOMBIA") %>%
# Eliminando variable de nacionalidad
select(-ESTU_NACIONALIDAD)
Estructura interna de icfes_acho2
:
str(icfes_ancho2)
## 'data.frame': 549519 obs. of 20 variables:
## $ ESTU_TIPODOCUMENTO : Factor w/ 9 levels "CC","CE","CR",..: 3 9 9 9 1 9 9 9 9 9 ...
## $ ESTU_GENERO : Factor w/ 2 levels "F","M": 2 2 2 2 2 1 2 2 2 2 ...
## $ ESTU_DEPTO_RESIDE : Factor w/ 35 levels "-","AMAZONAS",..: 5 15 33 8 6 14 21 5 9 8 ...
## $ ESTU_MCPIO_RESIDE : Factor w/ 1033 levels "-","ABEJORRAL",..: 871 478 133 953 101 286 971 667 513 259 ...
## $ FAMI_ESTRATOVIVIENDA : Factor w/ 8 levels "-","Estrato 1",..: 3 2 3 4 3 1 8 8 3 2 ...
## $ COLE_JORNADA : Factor w/ 6 levels "COMPLETA","MAÑANA",..: 2 6 2 2 1 2 2 2 1 1 ...
## $ FAMI_TIENEINTERNET : Factor w/ 3 levels "-","No","Si": 3 3 2 3 3 1 2 3 2 2 ...
## $ FAMI_TIENECOMPUTADOR : Factor w/ 3 levels "-","No","Si": 2 2 2 3 2 2 2 3 2 2 ...
## $ FAMI_TIENECONSOLAVIDEOJUEGOS: Factor w/ 3 levels "-","No","Si": 2 2 2 3 2 2 2 3 2 2 ...
## $ FAMI_NUMLIBROS : Factor w/ 5 levels "-","0 A 10 LIBROS",..: 4 3 4 5 5 1 3 2 2 3 ...
## $ FAMI_COMECARNEPESCADOHUEVO : Factor w/ 5 levels "-","1 o 2 veces por semana",..: 5 2 3 5 2 1 2 3 5 2 ...
## $ ESTU_DEDICACIONINTERNET : Factor w/ 6 levels "-","30 minutos o menos",..: 5 4 4 5 3 1 2 3 4 2 ...
## $ ESTU_HORASSEMANATRABAJA : Factor w/ 6 levels "-","0","Entre 11 y 20 horas",..: 2 2 2 2 6 5 2 6 6 6 ...
## $ COLE_NATURALEZA : Factor w/ 2 levels "NO OFICIAL","OFICIAL": 2 2 2 1 1 2 2 2 2 2 ...
## $ COLE_AREA_UBICACION : Factor w/ 2 levels "RURAL","URBANO": 2 2 1 2 2 1 1 1 1 1 ...
## $ PUNT_LECTURA_CRITICA : int 63 54 59 61 56 28 45 30 50 43 ...
## $ PUNT_MATEMATICAS : int 69 50 43 60 51 35 49 37 63 51 ...
## $ PUNT_C_NATURALES : int 54 50 46 60 48 36 45 40 57 50 ...
## $ PUNT_SOCIALES_CIUDADANAS : int 57 40 45 67 49 37 33 40 48 50 ...
## $ PUNT_INGLES : int 65 48 47 63 56 37 50 40 59 48 ...
icfes_ancho3 <- icfes_ancho2 %>%
# Editando nombres
rename(TipoD = ESTU_TIPODOCUMENTO,
Genero = ESTU_GENERO,
DeptoR = ESTU_DEPTO_RESIDE,
MpioR = ESTU_MCPIO_RESIDE,
Estrato = FAMI_ESTRATOVIVIENDA,
Jornada = COLE_JORNADA,
Internet = FAMI_TIENEINTERNET,
PC = FAMI_TIENECOMPUTADOR,
Consola = FAMI_TIENECONSOLAVIDEOJUEGOS,
Libros = FAMI_NUMLIBROS,
Proteina = FAMI_COMECARNEPESCADOHUEVO,
Tinternet = ESTU_DEDICACIONINTERNET,
HorasT = ESTU_HORASSEMANATRABAJA,
TipoCole = COLE_NATURALEZA,
Area = COLE_AREA_UBICACION,
LecturaC = PUNT_LECTURA_CRITICA,
Matematicas = PUNT_MATEMATICAS,
Naturales = PUNT_C_NATURALES,
Sociales = PUNT_SOCIALES_CIUDADANAS,
Ingles = PUNT_INGLES) %>%
# Filtrando datos sólo CC y TI
filter(TipoD == "CC" | TipoD == "TI") %>%
# Eliminando nivel "-" de factores
filter(DeptoR != "-", MpioR != "-", Estrato != "-",
Internet != "-", PC != "-", Consola != "-",
Libros != "-", Proteina != "-", Tinternet != "-",
HorasT != "-") %>%
# Eliminando niveles sobrantes en factores
droplevels()
Nota: de los 549934 registros iniciales quedan 473573 (86.11%) después del proceso de depuración.
str(icfes_ancho3)
## 'data.frame': 473573 obs. of 20 variables:
## $ TipoD : Factor w/ 2 levels "CC","TI": 2 2 2 1 2 2 2 2 2 2 ...
## $ Genero : Factor w/ 2 levels "F","M": 2 2 2 2 2 2 2 2 2 2 ...
## $ DeptoR : Factor w/ 33 levels "AMAZONAS","ANTIOQUIA",..: 14 31 7 5 19 4 8 7 12 2 ...
## $ MpioR : Factor w/ 1031 levels "ABEJORRAL","ÁBREGO",..: 476 132 951 100 969 665 511 258 104 161 ...
## $ Estrato : Factor w/ 7 levels "Estrato 1","Estrato 2",..: 1 2 3 2 7 7 2 1 2 1 ...
## $ Jornada : Factor w/ 6 levels "COMPLETA","MAÑANA",..: 6 2 2 1 2 2 1 1 5 2 ...
## $ Internet : Factor w/ 2 levels "No","Si": 2 1 2 2 1 2 1 1 1 1 ...
## $ PC : Factor w/ 2 levels "No","Si": 1 1 2 1 1 2 1 1 1 1 ...
## $ Consola : Factor w/ 2 levels "No","Si": 1 1 2 1 1 2 1 1 1 1 ...
## $ Libros : Factor w/ 4 levels "0 A 10 LIBROS",..: 2 3 4 4 2 1 1 2 2 2 ...
## $ Proteina : Factor w/ 4 levels "1 o 2 veces por semana",..: 1 2 4 1 1 2 4 1 2 2 ...
## $ Tinternet : Factor w/ 5 levels "30 minutos o menos",..: 3 3 4 2 1 2 3 1 5 1 ...
## $ HorasT : Factor w/ 5 levels "0","Entre 11 y 20 horas",..: 1 1 1 5 1 5 5 5 1 1 ...
## $ TipoCole : Factor w/ 2 levels "NO OFICIAL","OFICIAL": 2 2 1 1 2 2 2 2 2 2 ...
## $ Area : Factor w/ 2 levels "RURAL","URBANO": 2 1 2 2 1 1 1 1 2 2 ...
## $ LecturaC : int 54 59 61 56 45 30 50 43 43 62 ...
## $ Matematicas: int 50 43 60 51 49 37 63 51 43 63 ...
## $ Naturales : int 50 46 60 48 45 40 57 50 35 59 ...
## $ Sociales : int 40 45 67 49 33 40 48 50 41 53 ...
## $ Ingles : int 48 47 63 56 50 40 59 48 41 46 ...
tidydata
icfes_largo <- icfes_ancho3 %>%
gather(key = "Prueba", value = "Puntaje", c(16:20))
icfes_ancho_2 <- icfes_largo %>%
spread(key = Prueba, value = Puntaje, convert = TRUE)
save(icfes_largo, file = "Icfes_depurada.Rdata", compress = "xz")