Manipulacion de datos

library(haven)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.1.0     v dplyr   1.0.5
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
#<<<<<<< HEAD

Caracteristicas_y_composicion_del_hogar <- read_sav("Caracteristicas y composicion del hogar.sav")

Servicios_del_hogar <- read_sav("Servicios del hogar.sav" )


#=======
#Caracteristicas_y_composicion_del_hogar <- read_sav("C:/Users/julia/Downloads/Encuesta Calidad de Vida/Caracteristicas y composicion del hogar.sav")

#Servicios_del_hogar <- read_sav("C:/Users/julia/Downloads/Encuesta Calidad de Vida/Servicios del hogar.sav")
#>>>>>>> 575a674479f60f6deeeaee286ea0a252b67ec495

http://microdatos.dane.gov.co/index.php/catalog/607/datafile/F116

Caracteristicas_y_composicion_del_hogar
#extraccion numero de hijos

#se filtra P6051 == 3 
nhijos <- Caracteristicas_y_composicion_del_hogar %>% 
   filter(P6051==3, SECUENCIA_P == 1) %>%
   group_by(DIRECTORIO) %>%
   summarise(Hijos=n()) 

barplot(table(nhijos$Hijos), main="Numero de hijos")

caracteristicas_hogar <- Caracteristicas_y_composicion_del_hogar %>% 
   filter(P6051==1, SECUENCIA_P == 1) %>%
   select(DIRECTORIO ,P6020, P6040, P5502, P6071, P5667)
caracteristicas_hogar
#secuencia encuesta 1 para la primera encuesta que le hicieron al hogar
servicios <- Servicios_del_hogar %>%
   filter(SECUENCIA_ENCUESTA == 1) %>% 
   select(DIRECTORIO, CANT_PERSONAS_HOGAR, I_HOGAR, P5010) 
servicios
#unir caracteristicas y nhijos a datos
datos <- merge(x = caracteristicas_hogar, y = nhijos, by = "DIRECTORIO", all.x=TRUE, all.y=TRUE)
#unir datos con servicios 
datos <- merge(x = datos, y = servicios, by = "DIRECTORIO", all.x = TRUE, all.y=TRUE)

#reemplazar NA con 0 hijos
datos <- datos %>% replace_na(list(Hijos = 0))
datos %>%
   filter(CANT_PERSONAS_HOGAR == 0 & Hijos == 0)
plot(datos$CANT_PERSONAS_HOGAR,datos$Hijos)

datos
write.csv(datos,"datos.csv", row.names = TRUE)

Intento para combinar con otro archivo, no mejoró el performance

datos_vivienda <- read_sav("Datos de la vivienda.sav" )
datos_vivienda
source("datosNA.R")
sel<-seleccionar(datos_vivienda)
sel
##  [1] "DIRECTORIO"            "SECUENCIA_ENCUESTA"    "SECUENCIA_P"          
##  [4] "ORDEN"                 "REGION"                "P1_DEPARTAMENTO"      
##  [7] "CANT_HOG_COMPLETOS"    "CANT_HOGARES_VIVIENDA" "CLASE"                
## [10] "P1070"                 "P4005"                 "P4015"                
## [13] "P4567"                 "P8520S1"               "P8520S1A1"            
## [16] "P8520S5"               "P8520S3"               "P8520S4"              
## [19] "P8520S4A1"             "P4065S1"               "P4065S2"              
## [22] "P4065S3"               "P4065S4"               "P5661S1"              
## [25] "P5661S2"               "P5661S3"               "P5661S4"              
## [28] "P5661S9"               "P5661S5"               "P5661S6"              
## [31] "P5661S7"               "FEX_C"
datos_vivienda <- datos_vivienda %>%
   filter(SECUENCIA_ENCUESTA == 1) %>% 
   select(sel ) %>%
   select(-SECUENCIA_ENCUESTA,-SECUENCIA_P, -ORDEN, -FEX_C)
## Note: Using an external vector in selections is ambiguous.
## i Use `all_of(sel)` instead of `sel` to silence this message.
## i See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
## This message is displayed once per session.
datos_vivienda
nuevos_datos <- merge(x = datos, y = datos_vivienda, by = "DIRECTORIO", all.x = TRUE, all.y=TRUE)
nuevos_datos
sel<-seleccionar(nuevos_datos)
length(sel)
## [1] 37
write.csv(nuevos_datos,"nuevos_datos.csv", row.names = TRUE)