Antes de hacer cualquier análisis de datos es necesario revisar la data para detectar posibles inconsistencias, transcripciones defectuosas, cálculos mal elaborados, entre otros aspectos. Los resultados de un análisis de data podrían ser cuestionables si ese análisis se elabora con data ‘en mal estado’. Veamos algunos pasos previos que nos permiten detectar qué limpiezas debemos emprender antes de iniciar el análisis.

# subimos la data a la consola de R
reni <- read.csv("D:/reni/data/hogares.csv", sep=";", dec=",", na.strings=" ", encoding="UFT-8")

Revisamos los nombres de las variables.

colnames(reni)
##  [1] "fecha.del.censo" "ccom"            "ctu"            
##  [4] "plant"           "vele"            "terp"           
##  [7] "vivi"            "chog"            "hogr"           
## [10] "dorm"            "cocp"            "cocc"           
## [13] "tenv"            "cocn"            "neve"           
## [16] "lavd"            "juco"            "musa"           
## [19] "utco"            "vent"            "comp"           
## [22] "telv"            "otrs"            "toha"           
## [25] "banio"           "pots.1"          "potencial.1"    
## [28] "pots.2"          "potencial.2"     "ptos.3"         
## [31] "potencial.3"     "debs.1"          "debilidades1"   
## [34] "debs.2"          "debilidades2"    "debs.3"         
## [37] "debilidades.3"   "tipv"            "cocp.1"         
## [40] "mpar"            "mtch"            "mpis"           
## [43] "srvs"            "tlff"            "tfmc"           
## [46] "serb"            "agua"            "meda"           
## [49] "aseo"            "mede"            "asrv"           
## [52] "nºmh"            "apno"            "pcjh"           
## [55] "tiph"            "sexo"            "fnrc"           
## [58] "edad"            "eemb"            "eciv"           
## [61] "lugn"            "edo"             "nrcn"           
## [64] "pain"            "slye"            "grani"          
## [67] "semt"            "unea"            "aeed"           
## [70] "amie"            "doas"            "cesl"           
## [73] "secl"            "otin"            "cing"           
## [76] "imen"            "infa"            "pouo"           
## [79] "oit"             "caso"            "clph"           
## [82] "amvp"            "eass"            "ecss"           
## [85] "cydh"            "cclf"            "cpss"           
## [88] "cjie"            "hiam"            "cqhe"           
## [91] "hefd"            "hefd.especif"    "disc"           
## [94] "enft"            "nrye"

Sería necesario buscar el libro de códigos original que acompaña a la data (no siempre se cuenta con esa herramienta) para cambiar los nombres de las variables por otros que sean más informativos.

Podemos revisar también el contenido de las variables. Usemos la función table(). Para este ejemplo revisaremos solo las diez primeras variables, y de éstas los cinco primeros casos.

sapply(reni[1:5, 1:10], function(x) table(x))
## $fecha.del.censo
## x
##    agosto 2011 diciembre 2011     julio 2011   octubre 2011 
##              0              5              0              0 
## 
## $ccom
## x
##                     ali primera con la union la nueva esperanza 
##                               0                               0 
## la esperanza de romulo gallegos                         la pica 
##                               0                               0 
##             nuevo horizonte iii 
##                               5 
## 
## $ctu
## x
##                       antonio jose de sucre             el futuro 
##                     0                     5                     0 
##         haidee machin     jose antonio paez          la esperanza 
##                     0                     0                     0 
##               la pica          lino rosales       nueva esperanza 
##                     0                     0                     0 
##           paso andino       romulo gallegos 
##                     0                     0 
## 
## $plant
## x
##     1  2  3 nr 
##  0  3  2  0  0 
## 
## $vele
## x
## 1 
## 5 
## 
## $terp
## x
##    no nr si 
##  0  0  0  5 
## 
## $vivi
## x
##     1  2  3  4  5  6  7  8 nr 
##  0  5  0  0  0  0  0  0  0  0 
## 
## $chog
## x
## 1 
## 5 
## 
## $hogr
## x
## 1 
## 5 
## 
## $dorm
## x
##     0  1  2  3  4  5 nr 
##  0  0  0  4  1  0  0  0

DE forma sistemática, faltan 6 casos en la data. Pudiera tratarse de celdas vacías. Exploremos el final de la matriz de datos usando la función tail()

tail(reni, 10)
##      fecha.del.censo        ccom ctu plant vele terp vivi chog hogr dorm
## 1161     agosto 2011 ali primera         1    2   no    1    1    1    3
## 1162     agosto 2011 ali primera         1    2   si    2    1    1    2
## 1163     agosto 2011 ali primera         1    2   si    1    1    1    3
## 1164     agosto 2011 ali primera         1    2   si    2    1    1    1
## 1165     agosto 2011 ali primera         1    2   no    1    1    1    1
## 1166     agosto 2011 ali primera         1    2   no    2    1    1    1
## 1167     agosto 2011 ali primera         1    1   si    1    1    1    2
## 1168    octubre 2011 ali primera         1    1   nr    1    1    1    1
## 1169    octubre 2011 ali primera         1    1   si    1    1    1    1
## 1170     agosto 2011 ali primera         1    1   si    1    1    1    4
##      cocp cocc          tenv   cocn     neve     lavd     juco     musa
## 1161   si   si propia pagada propia   propia   propia   propio   propio
## 1162   si   no    traspasada propia   propia   propia   propio   propio
## 1163   si   no propia pagada propia   propia   propia   propio no tiene
## 1164   si   no propia pagada propia   propia   propia no tiene   propio
## 1165   si   no      prestada propia   propia   propia   propio no tiene
## 1166   si   no     alquilada propia   propia   propia no tiene no tiene
## 1167   si   no propia pagada propia no tiene no tiene no tiene no tiene
## 1168   si   no     alquilada propia   propia no tiene no tiene   propio
## 1169   si   no propia pagada propia no tiene no tiene no tiene no tiene
## 1170   si   no propia pagada propia   propia   propia   propio no tiene
##          utco     vent     comp   telv     otrs toha banio
## 1161   propio   propio no tiene propio   propio    3     1
## 1162   propio   propio no tiene propio   propio    2     1
## 1163   propio no tiene no tiene propio no tiene    3     1
## 1164   propio   propio no tiene propio   propio    1     1
## 1165   propio   propio no tiene propio   propio    1     0
## 1166 no tiene   propio no tiene propio   propio    1     0
## 1167   propio   propio no tiene propio   propio    2     1
## 1168   propio no tiene no tiene propio   propio    2     0
## 1169   propio no tiene no tiene propio no tiene    1     0
## 1170   propio   propio no tiene propio no tiene    4     1
##                          pots.1            potencial.1            pots.2
## 1161                       nada                ninguna                nr
## 1162                         nr                     nr                nr
## 1163               tranquilidad saneamiento y ambiente                nr
## 1164               tranquilidad saneamiento y ambiente                nr
## 1165           relacion vecinal               vecindad                nr
## 1166                       agua      servicios basicos servicios basicos
## 1167                       nada                ninguna                nr
## 1168                       nada                ninguna                nr
## 1169                     cancha  otras potencialidades          escuelas
## 1170 vialidad e infraestructura      servicios basicos        transporte
##            potencial.2 ptos.3            potencial.3
## 1161                nr     nr                     nr
## 1162                nr     nr                     nr
## 1163                nr     nr                     nr
## 1164                nr     nr                     nr
## 1165                nr     nr                     nr
## 1166 servicios basicos basura saneamiento y ambiente
## 1167                nr     nr                     nr
## 1168                nr     nr                     nr
## 1169        proteccion     nr                     nr
## 1170 servicios basicos   agua      servicios basicos
##                                   debs.1               debilidades1
## 1161                          transporte vialidad e infraestructura
## 1162 mala administracion consejo comunal                   desunion
## 1163                              basura      problemas ambientales
## 1164                              basura      problemas ambientales
## 1165                  falta de escaleras vialidad e infraestructura
## 1166                           escaleras vialidad e infraestructura
## 1167                           escaleras vialidad e infraestructura
## 1168                           escaleras vialidad e infraestructura
## 1169                                todo                       todo
## 1170                         inseguridad                inseguridad
##           debs.2               debilidades2          debs.3
## 1161 inseguridad                inseguridad          basura
## 1162 inseguridad                inseguridad desorganizacion
## 1163          nr                         nr              nr
## 1164          nr                         nr              nr
## 1165    basurero      problemas ambientales              nr
## 1166  transporte vialidad e infraestructura     inseguridad
## 1167  transporte vialidad e infraestructura              nr
## 1168  transporte vialidad e infraestructura    delincuencia
## 1169          nr                         nr              nr
## 1170   alumbrado          servicios basicos          basura
##              debilidades.3   tipv  cocp.1                         mpar
## 1161 problemas ambientales   casa ocupada    bloque o ladrillo frisado
## 1162              desunion rancho ocupada                         zinc
## 1163                    nr rancho ocupada                       tablas
## 1164                    nr   casa ocupada    bloque o ladrillo frisado
## 1165                    nr rancho ocupada                         zinc
## 1166           inseguridad rancho ocupada                       tablas
## 1167                    nr rancho ocupada                       tablas
## 1168           inseguridad rancho ocupada                         zinc
## 1169                    nr rancho ocupada                         zinc
## 1170 problemas ambientales   casa ocupada bloque o ladrillo sin frisar
##                                     mtch    mpis srvs tlff tfmc serb
## 1161 laminas de metal (zinc y similares) cemento   si   si   no   no
## 1162 laminas de metal (zinc y similares) cemento   si   si   no   no
## 1163 laminas de metal (zinc y similares) cemento   si   si   no   no
## 1164 laminas de metal (zinc y similares) cemento   si   no   si   no
## 1165 laminas de metal (zinc y similares) cemento   si   no   si   no
## 1166 laminas de metal (zinc y similares)  tierra   si   no   si   si
## 1167 laminas de metal (zinc y similares) cemento   si   si   no   no
## 1168 laminas de metal (zinc y similares) cemento   si   no   no   si
## 1169 laminas de metal (zinc y similares)  tierra   si   no   si   no
## 1170 laminas de metal (zinc y similares) cemento   si   no   si   si
##                     agua meda                    aseo mede
## 1161 acueducto o tuberia   no    aseo urbano o camion   si
## 1162 acueducto o tuberia   no     container o bajante   si
## 1163 acueducto o tuberia   no al aire libre o quemada   si
## 1164 acueducto o tuberia   no al aire libre o quemada   no
## 1165 acueducto o tuberia   no al aire libre o quemada   no
## 1166 acueducto o tuberia   no     container o bajante   no
## 1167                otro   no al aire libre o quemada   si
## 1168                otro   no al aire libre o quemada   no
## 1169                otro   no al aire libre o quemada   no
## 1170 acueducto o tuberia   no    aseo urbano o camion   si
##                             asrv nºmh                              apno
## 1161   poceta conectada a cloaca    1      torres mendoza luis hernando
## 1162   poceta conectada a cloaca    1             mijares luis leonardo
## 1163   poceta conectada a cloaca    1                 torres bersa rosa
## 1164   poceta conectada a cloaca    1                       torres luis
## 1165 no tiene poceta ni excusado    1      vega campo adalys del carmen
## 1166 no tiene poceta ni excusado    1      calvo mariote berhta cecilia
## 1167 no tiene poceta ni excusado    1              yepez marimon yirian
## 1168 no tiene poceta ni excusado    1                 calvo juan carlos
## 1169 no tiene poceta ni excusado    1            cassiani guerra amparo
## 1170   poceta conectada a cloaca    1 valdes hernandez manuel francisco
##      pcjh                    tiph   sexo  fnrc edad eemb        eciv
## 1161    1           nf biparental hombre 12542   77   na    casado/a
## 1162    1           nf biparental hombre 27799   35   na concubino/a
## 1163    1 nf monoparental materno  mujer 17057   64   na   soltero/a
## 1164    1           nf biparental hombre 30269   28   na concubino/a
## 1165    1           nf biparental  mujer 31409   25   no   soltero/a
## 1166    1 nf monoparental materno  mujer 31092   26   no   soltero/a
## 1167    1         hogar extendido  mujer 26155   40   no   soltero/a
## 1168    1           nf biparental hombre 32419   23   na concubino/a
## 1169    1 nf monoparental materno  mujer 28382   34   no   soltero/a
## 1170    1           nf biparental hombre 28792   32   na concubino/a
##                lugn              edo         nrcn     pain slye
## 1161      venezuela distrito capital venezolano/a            si
## 1162      venezuela          miranda venezolano/a            si
## 1163 en el exterior         colombia venezolano/a colombia   no
## 1164      venezuela distrito capital venezolano/a            si
## 1165      venezuela distrito capital venezolano/a            si
## 1166      venezuela          miranda venezolano/a            si
## 1167 en el exterior         colombia venezolano/a colombia   no
## 1168      venezuela distrito capital venezolano/a            no
## 1169      venezuela distrito capital venezolano/a            si
## 1170      venezuela distrito capital venezolano/a            si
##              grani semt      unea aeed      amie                  doas
## 1161   sexto grado   na    basica   no a ninguna                    na
## 1162   sexto grado   na    basica   si a ninguna fuera de la comunidad
## 1163            na   na sin nivel   no a ninguna                    na
## 1164   sexto grado   na    basica   no a ninguna                    na
## 1165   primer anio   na    basica   si a ninguna fuera de la comunidad
## 1166   sexto grado   na    basica   no a ninguna                    na
## 1167 segundo grado   na    basica   no a ninguna                    na
## 1168            na   na sin nivel   no a ninguna                    na
## 1169   primer anio   na    basica   no        nr                    nr
## 1170   tercer anio   na    basica   no a ninguna                    na
##                                cesl              secl      otin
## 1161 pensiona o jubila sin trabajar                na   pension
## 1162                     trabajando           privado no recibe
## 1163                     trabajando por cuenta propia no recibe
## 1164                     trabajando           privado no recibe
## 1165                     trabajando por cuenta propia no recibe
## 1166                     trabajando por cuenta propia no recibe
## 1167                     trabajando por cuenta propia no recibe
## 1168                    desempleado                na no recibe
## 1169                     trabajando           privado no recibe
## 1170                     trabajando por cuenta propia no recibe
##                       cing         imen       infa                 pouo
## 1161               mensual    301 - 799  301 - 799     policia retirado
## 1162             quincenal   800 - 2000 800 - 2000            vigilante
## 1163                diario    301 - 799 800 - 2000          comerciante
## 1164               semanal   800 - 2000 800 - 2000 ayudante de albaniil
## 1165                diario    301 - 799  301 - 799            vendedora
## 1166 por trabajo realizado   800 - 2000 800 - 2000          peluquero/a
## 1167 por trabajo realizado menos de 300  301 - 799    cuidado de ninios
## 1168                    na           na    ninguno            jardinero
## 1169               semanal   800 - 2000 800 - 2000           cocinero/a
## 1170               semanal   800 - 2000 800 - 2000            vendedora
##                              oit                caso clph amvp eass ecss
## 1161                    tecnicos formacion academica   na   na   na   na
## 1162 trabajadores no calificados   por cuenta propia   no   na   no   na
## 1163 trabajadores no calificados   por cuenta propia   no   na   no   na
## 1164 trabajadores no calificados   por cuenta propia   no   na   no   na
## 1165      servicios y vendedores   por cuenta propia   no   na   no   na
## 1166      servicios y vendedores   por cuenta propia   no   na   no   na
## 1167 trabajadores no calificados   por cuenta propia   no   na   no   na
## 1168 trabajadores no calificados   por cuenta propia   no   na   no   na
## 1169       oficiales y operarios   por cuenta propia   no   na   no   na
## 1170      servicios y vendedores   por cuenta propia   no   na   si   no
##      cydh cclf cpss cjie hiam cqhe                  hefd hefd.especif disc
## 1161   na    0   si   si   si   si hipertension arterial           na   no
## 1162   na   na   na   na   si   no                    no           na   no
## 1163   na   nr   nr   nr   si   si hipertension arterial           na   no
## 1164   na   na   na   na   si   no                    no           na   no
## 1165   na   na   na   na   si   no                    no           na   no
## 1166   na   na   na   na   si   no                    no           na   no
## 1167   na   na   na   na   si   no                    no           na   no
## 1168   na   na   na   na   no   no                    no           na   no
## 1169   na   na   na   na   si   no                    no           na   no
## 1170   si   na   na   na   no   no                    no           na   no
##      enft nrye
## 1161   no   si
## 1162   no   no
## 1163   no   no
## 1164   no   no
## 1165   no   no
## 1166   no   nr
## 1167   no   no
## 1168   no   no
## 1169   no   no
## 1170   no   no

Efectivamente, hay seis filas vacías. Eliminemosla:

ren<-reni[1:1159,]
# verificamos

dim(reni)
## [1] 1170   95
#repitamos tabla con las diez primeras variables
sapply(reni[1:5,1:10], function(x) table(x))
## $fecha.del.censo
## x
##    agosto 2011 diciembre 2011     julio 2011   octubre 2011 
##              0              5              0              0 
## 
## $ccom
## x
##                     ali primera con la union la nueva esperanza 
##                               0                               0 
## la esperanza de romulo gallegos                         la pica 
##                               0                               0 
##             nuevo horizonte iii 
##                               5 
## 
## $ctu
## x
##                       antonio jose de sucre             el futuro 
##                     0                     5                     0 
##         haidee machin     jose antonio paez          la esperanza 
##                     0                     0                     0 
##               la pica          lino rosales       nueva esperanza 
##                     0                     0                     0 
##           paso andino       romulo gallegos 
##                     0                     0 
## 
## $plant
## x
##     1  2  3 nr 
##  0  3  2  0  0 
## 
## $vele
## x
## 1 
## 5 
## 
## $terp
## x
##    no nr si 
##  0  0  0  5 
## 
## $vivi
## x
##     1  2  3  4  5  6  7  8 nr 
##  0  5  0  0  0  0  0  0  0  0 
## 
## $chog
## x
## 1 
## 5 
## 
## $hogr
## x
## 1 
## 5 
## 
## $dorm
## x
##     0  1  2  3  4  5 nr 
##  0  0  0  4  1  0  0  0

Hemos eliminado las filas vacías. Ahora es necesario hacer algunas limpiezas en las categorías de las variables:

reni[,1]<-gsub("Con la Unión la Nueva Esperanza",'nueva esperanza', perl=TRUE,reni[,1])

reni[,1]<-gsub("La esperanza de Rómulo Gallegos",'romulo gallegos', perl=TRUE,reni[,1])

reni[,1]<-gsub("Nuevo Horizonte III",'nvo horizonte', perl=TRUE,reni[,1])

reni[,1]<-tolower(reni[,1])

# comprobemos los cambios en la variable
table(reni[,1])
## 
##    agosto 2011 diciembre 2011     julio 2011   octubre 2011 
##            236            848             72             14
# cambio el tipo de variable
reni[,1]<-as.factor(reni[,1])

El procedimiento anterior se sigue para reunir categorias de variables. Por ejemplo:

Hagamo algunas como demostracion

reni$pots.1 <-gsub('actividad recreativa',
                   'actividades recreativas', 
        perl=TRUE, reni$pots.1)
        

reni$pots.1 <-gsub('actividades de recreacion infantil', 
                  'actividades recreativas', 
                  perl=TRUE, reni$pots.1)

reni$pots.1 <-gsub('actos deportivos', 
                  'actividades deportivas', 
                  perl=TRUE, reni$pots.1)

Para acelerar el proceso, podemos crear una función usando la función gsub como medio:

limpiar<-function(viejo, nuevo, variable){
       x <-gsub(viejo, nuevo, 
                  perl=TRUE,variable)
       return(x)
}
reni$pots.1 <-limpiar('colegio cercano', 'colegios',
                      reni$pots.1)
reni$pots.1 <-limpiar('compartir con ellos', 
                      ' colaboracion',
                      reni$pots.1)
reni$pots.1 <-limpiar('buen transporte', 
                      'transporte',
                      reni$pots.1)

Eliminamos la segunda variable dado que no es vital para el análisis:

reni<- reni[,-2]

#verifiquemos
dim(reni)
## [1] 1170   94

Una vez que TODA la data ESTE DEBIDAMENTE LIMPIA, que no es el caso en este ejemplo, puesto que sólo hemos trabajado algunos caso, podemos hacer los analisis exploratorios