ropensci/eph

Error: No common type for `..1$microdata$ESTADO` <double> and `..4$microdata$ESTADO` <haven_labelled>.

Closed this issue · 5 comments

Buenas! Para una investigación tenía que procesar datos de EPH desde 2007 hasta 2011, principalmente ocupados (registrados y no registrados) en la industria manufacturera. Para esto corrí la función "get_microdata()", que te devuelve los valores de las variables como lista dentro de una columna.

eph.individual.07 <- get_microdata(
  year = c(2007),
  trimester = c(1, 2, 3, 4),
  type = "individual",
  vars = c("ESTADO", "CAT_OCUP", "PP04B_COD", "PONDERA", "PP07H", "P21"))

El problema fue que, a la hora de unnestear la data, me reportaba el error que puse en el título, ya que las variables (entre trimestre y trimestre) cambiaban su tipo. Al principio me sucedió con "PP04B_COD", pero luego fue evidente que pasaba con todas.

Error: No common type for ..1$microdata$PP04B_COD and ..2$microdata$PP04B_COD .

Primero probé cambiando la función para unnestear, luego tratando de convertir los elementos de la lista, pero no funcionaba bien. Después de googlear un poco y de bucear en los elementos de los elementos de la lista, con este simple código (la primera parte edita la lista, la segunda la unnestea) lo pude resolver:

eph.individual.07$microdata[[2]]$PP04B_COD <-as.double(eph.individual.07$microdata[[2]]$PP04B_COD) 

eph.individual.07$microdata[[4]]$PP04B_COD <- as.double(eph.individual.07$microdata[[4]]$PP04B_COD)

eph.individual.07$microdata[[1]]$PP04B_COD <- as.double(eph.individual.07$microdata[[1]]$PP04B_COD)

eph.individual.07$microdata[[4]]$ESTADO <- as.double(eph.individual.07$microdata[[4]]$ESTADO) 

eph.individual.07$microdata[[4]]$CAT_OCUP <- as.double(eph.individual.07$microdata[[4]]$CAT_OCUP)

eph.individual.07$microdata[[4]]$PP07H <- as.double(eph.individual.07$microdata[[4]]$PP07H)

bases_bind <- eph.individual.07 %>%
  unchop(., cols = c(microdata))

Espero que sirva!

Saludos!

@pablotis Esto se resolvería con lo que proponías de definir los types de todas las variables a priori, no?

Entiendo que este problema sólo aparece para 2007, ya que para el resto de los años pude laburar sin tener que dar estas vueltas.

Abrazo!

Hola Lucas, gracias por mostrarnos el error y la posible solución. Efectivamente (y no solo para 2007) algunos tipos de variables están rompiendo la función al querer bajar la serie. Estamos viendo la mejor forma de solucionarlo para todas las bases, en estos días ya debería estar arreglado!

Hola Lucas, esto ya debería estar resuelto. Avisanos si te vuelve a pasa y gracias por el reporte.

Entiendo que esto esta resuelto. Si sigue fallando @lucasterranova simplemente re abrí el issue.

saludos