Comencé hace un tiempo un pequeño paquete de R, MicroDataEs
, para importar automáticamente a R ficheros de microdatos distribuidos por los diversos organismos estadísticos (españoles, por acotar el ámbito). El objetivo es facilitar el análisis de este tipo de datos a los usuarios de R y como consecuencia:
- fomentar el uso de R entre aquellos que utilicen frecuentemente este tipo de información y
- hacer más accesibles estos datos a los usuarios de R.
Quien haya tratado de trabajar, por ejemplo, con los ficheros de microdatos de la EPA que publica el INE comprenderá rápidamente el interés y alcance del paquete. Porque estos datos:
- se distribuyen en un fichero de texto posicional que sólo contiene códigos numéricos y
- la relación de valores correspondientes a dichos códigos y otros metadatos (como la posición de las columnas) están contenidas en unas hojas de Excel.
Cada usuario de R que quiera, por lo tanto, utilizar esta información tiene primero que (muy trabajosamente) trasladar a R los metadatos de las hojas de Excel, crear funciones que realicen la traducción, etc. Y estoy seguro de que más de uno (y más de cien) ya han malgastado horas de su vida en esos afanes.
El paquete MicroDataEs
contiene dos partes:
- Una plataforma común y reutilizable para almacenar metadatos, leer ficheros, etc. y generar los
dataframes
correspondientes para, en principio, una clase amplia de ficheros de metadatos. - Un catálogo de metadatos correspondientes a tipos de ficheros de microdatos generados por instituciones estadísticas.
Por el momento, el catálogo contiene únicamente información para la lectura de los datos de la EPA. Pero espero hacerlo crecer (y tal vez con tu ayuda: ¿me echas una mano?).
El paquete está disponible en R-Forge y puede instalarse en R haciendo
install.packages("MicroDatosEs", repos="http://R-Forge.R-project.org")
aunque tal vez sea necesario instalar alguna dependencia desde CRAN (si experimentan problemas en la instalación, hay que comprobar el mensaje de error para ver si se debe, efectivamente, a la falta un paquete). Se puede probar luego consultando ?epa2005
.
Y para terminar, insisto: si quieres colaborar en el paquete enriqueciendo el catálogo de ficheros (o, cuando menos, existe algún tipo de ficheros que te gustaría añadir a él), ponte en contacto conmigo y vemos qué podemos hacer al respecto.
Hola Carlos:
Gran iniciativa.
Mi experiencia con los microdatos del INE (y también del CIS) es bastante laboriosa. Hasta ahora los vuelco a SPSS pero escribiéndome «a pedal» el código correspondiente. Además los campos de las variables de ponderación hay que adaptarlos para lidiar con el carácter decimal que incluyen.
He podido instalar el paquete pero, sinceramente, no sé cómo seguir. Intentaré meterme más a fondo.
Un cordil saludo,
José Ignacio
@José Ignacio Pues voy a colgar un minitutorial para demostrar cómo funcionaría en los próximos días.
Si hay datos del INE o del CIS que tengan continuidad en el tiempo (es decir, como la EPA, que salen ficheros periodicamente con el mismo formato) que conozcas y te interesen, los integramos en el paquete. ¿Tienes alguna lista?
@datanalytics
Exactamente con el mismo formato creo que no existe más que la EPA. Otras encuestas periódicas (anuales) con microdatos son la «Encuesta de Presupuestos Familiares» (con una estructura de ficheros más bien compleja) y la «Encuesta de Equipamiento y Uso de las TIC en los Hogares», pero la estructura varía de un año al otro.
El CIS publica microdatos mensualmente de los Barómetros de Opinión, con estructura variable, y el (ICC) Indicador de Confianza de los Consumidores, que creo tampoco mantiene la misma exacta estructura. Para acceder a los ficheros de microdatos hay que rellenar una ficha con los datos del peticionario.
Gracias por el minitutorial
Deseoso de que publique el tutorial!!
Hola Carlos, yo con el tema de la ECPF la suelo leer de un modo bastante sencillo, lo único eso sí, que tienes que crearte un .csv con 2 columnas que tenga el nombre de las variables y su longitud, esto lo puedes sacar más o menos rápidamente de la documentación que ofrece el INE.
El resto es un código R bastante fácil, donde es de destacar la función read.fwf que te permite poner las cabeceras y los separadores donde conviente:
DESC_VAR_HOGAR = read.csv(‘D:\\fjra\\INPUTS_HOGAR.csv’)
V_LONGITUD <- DESC_VAR_HOGAR$LONGITUD
V_VARIABLE <- DESC_VAR_HOGAR$VARIABLE
Result = read.fwf('D:\\fjra\\Fichero_usuario_hogar_2010', widths = V_LONGITUD, col.name = V_VARIABLE, header = FALSE, sep = "\t")
Así pues si cambia la estructura de los ficheros, voy cambiando la estructura del fichero de cabecera
Con el tema de datos del censo empecé con una estructura quizás más simple y tal como sigue (pongo este ejemplo para aclarar en todo caso y porque ya lo tenía escrito):
V_LONGITUD = c(6, 4, 2, 4, 3, 1, 3, 2,
3, 1, 2, 2, 2, 4, 4, 4,
2, 3, 1, 3, 2, 1, 2, 2,
2, 2, 1, 3, 2, 1, 2, 2,
1, 2, 2, 2, 3, 1, 3, 2,
2)
V_VARIABLE = c("ID_HOGAR", "NORDF", "MNAC", "ANAC", "EDAD", "SEXO", "NACI", "CPRON",
"CMUNN", "ECIVIL", "PARENPP", "ESREAL", "TESTUD", "ANIOE", "ANIOC", "ANIOM",
"CLPRO", "CLMUNP", "RES10", "CMUN10", "CPROV10", "CONLEN", "SITU1",
"SITU2", "SITU3", "SITU", "LUGTE", "CLMUNI", "CLPROV", "NVIAJE", "MDESP1",
"MDESP2", "TDESP", "ESCUR1", "ESCUR2", "ESCUR3", "COCUP", "SITP", "COACTI", "CSE", "TTRAB")
Result = read.fwf('D:\\fjra\\CENSO1.TXT', widths = V_LONGITUD, col.name = V_VARIABLE, header = FALSE, n = 20, sep = "\t")
Lo que no conozco muy bien es como hacer un paquete, pero en definitiva una idea podría ser montar distintos ficheros .csv que se actualicen conforme se modifique la estructura INE o hacer que esto sea automático y que R, en función de la fecha, eliga el que corresponda mediante un bucle condicional y la función read.fwf No sé si estoy muy alejado de la realidad o no, pero en definitiva no me parece tan tedioso el leer los ficheros de microdatos que me interese, aunque eso no quita que si me los dan automáticamente leídos y preparados en por ejemplo .csv separados por comas y con cabeceras pues mucho mejor.
Un saludo
PD Si ves que puedo ayudar en algo mándame algún correo, si me gustaría entender algo más de R por sobre todo en la parte de publicación de paquetes para uso por terceros
@José Ignacio En realidad, hay más y pueden verse en http://www.ine.es/prodyser/microdatos.htm Eso sí, no todas las encuestas son periódicas (algunas se han hecho una única vez) ni tienen un interés igual. Pero hay bastantes…
@Francisco Lo podemos mirar. De todos modos, el fichero de microdatos contiene tres ficheros distintos: hogares, miembros y gastos. No conozco la estructura de los datos (¡a pesar de que una vez mis padres estuvieron en el panel!) pero le podemos echar un vistazo. Te escribo.
Efectivamente son 3 ficheros relacionados. Yo ahora los tengo leidos y pasados .csv gracias a R, En una maquina normal no tarda mucho en cargar los trimestres y además, si tomas solo las variables que necesitas, vatodo mas rápido. Sobre tu problema en general creo que se podría montar una o varias function en R para realizar las lecturas de los microdatos mas importantes y que son la EPA, la ECPF, el CENSO (que dentro de poco se actualiza) y algunos mas. El usuario podría meter el nombre del fichero a leer y algunos datos mas y daría como resultado un .csv apto a utilizar por R junto con informacion adicional. Para estos 3 casos el tema seria algo tedioso pero factible y por lo que he visto en general la estructura cambia poco y casi siempre se añaden mas columnas a la derecha, con lo que su mantenimiento no seria muy complicado. Saludos
Para montar dichas funciona read.fwf viene muy bien y simplifica mucho, además de ser bastante rapida
Te he tratado de escribir para ver cómo podríamos avanzar en este asunto pero hotmail me devuelve el mensaje. ¿Me puedes escribir?
si montáis un lector de ficheros de la EPF me pongo a aprender R! Yo también he trabajado con ellos, y lo volveré a hacer seguro. Diría que el maor problema estaría en los códigos de gasto, pero son bastante estables hasta donde sé.
lo del censo lo veo complicadísimo, por la gran cantidad de datos y porque encuentro muy difícil que mantengan un mínimo el modelo de datos de un censo a otro. El padrón cambia menos, pero también lo hace (esta última explotación, por ejemplo).
En fin, suerte, si os puedo ayudar algo (a nivel conceptual) me dices, Carlos,
Hola.
Sólo darte las gracias por el paquete . Llevo una semana utilizándolo para leer datos de la EPA, y me está sirviendo un montón. Me he creado funciones para calcular tasas de paro, actividad , empleo y demás cosas para los «jóvenes» entre 16 y 35 años según sean extranjeros o españoles, y las aplico usando sapply a una lista dónde tengo guardado los datos trimestrales de un año.
La idea era tener en esa lista todos los trimestres desde 2007 hasta 2012, pero me quedo sin memoria RAM, así que voy año a año.
Lo dicho, muchas gracias.
@José Luis Me alegro mucho de eso. A ver si saco un ratillo y me pongo a ampliar el paquete.
E insisto: si alguien quiere colaborar… Creo que el siguiente fichero de microdatos que añadir a la exigua lista es el de la EPF. Que es, por cierto, uno de los más complicados.
Hola !
puede alguien colgar un tutorial.
Muchas gracias!
un saludo,
Pablo.
@pablo gimenez Pues la entrada http://www.datanalytics.com/blog/2012/08/06/un-paseo-por-el-paquete-microdatoses-y-la-epa-de-nuevo/ es un pequeño tutorial. Realmente, no hay mucho más: el paquete es premeditadamente simple y lo complicado es lo que uno vaya a hacer luego con los datos que cargue con él.
No puedo instalar el paquete 🙁
Error: package ‘MicroDatosEs’ is not available (for R version 2.15.2)
Qué versión debería tener??
Muchas gracias, si este paquete funciona me habrás ahorrado muchísimas horas de trabajo 🙂
@Isabel El paquete está bien, no tiene problemas. El problema está en r-forge y espero que se solucione pronto.
Entre tanto, si me escribes y me indicas qué sistema operativo usas, etc., te puedo pasar la última versión del paquete. También la puedes construir tú bajando el código fuente de r-forge, pero si no lo lo has hecho nunca, igual es más rápido lo anterior.
@datanalytics
Tengo windows 7, y soy bastante novata en R asi que cuanto más «para tontos» lo pueda hacer mejor 😉 muchas gracias!
Hola,
Es posible explotar la dimension de panel con la microdata que el INE distribuye publicamente? Si asi es, esta incluido esto en el paquete? Cada vivienda se entrevista durante seis trimestres consecutivos con lo que en principio se podria analizar la dimension temporal, lo cual seria util para determinadas cuestiones.
Muchisimas gracias por popularizar R entre los usuarios de microdata economica!
@Pedro Creo que no es posible trazar dichas viviendas. Pero puedes explorar los microdatos y comprobarlo. Yo ni siquiera soy experto en esas cuestiones.
@Isabel Creo que ya están solucionados los problemas que había en r-forge en general y con mi paquete en particular.
Genial el proyecto!
Pero no puedo descargar el paquete:
package ‘MicroDatosEs’ is not available (for R version 2.15.2)
Mi Sist.Op. es Mac OS X (10.6.8)
Un saludo y gracias!
No está todavía en CRAN. Pero se puede instalar como indica en http://www.datanalytics.com/blog/2012/08/03/el-paquete-microdataes-para-microdatos-publicos/
Buenas, parece una iniciativa muy interesante.
Estoy teniendo problemas en la instalación del paquete. Requiere entre otros «Hmisc», pero al intentar instalar éste, después de compilarlo obtengo el siguiente error:
installing to /home/adrian/R/i686-pc-linux-gnu-library/2.14/Hmisc/libs
** R
** inst
** preparing package for lazy loading
Error : ‘globalVariables’ is not an exported object from ‘namespace:utils’
Error : unable to load R code in package ‘Hmisc’
ERROR: lazy loading failed for package ‘Hmisc’
* removing ‘/home/adrian/R/i686-pc-linux-gnu-library/2.14/Hmisc’
¿A qué se puede deber esto?
Muchas gracias de antemano y un saludo
Difícil decírtelo. ¿Me puedes escribir un correo y lo vemos?
Hola! No puedo descargar el paquete:
package ‘MicroDatosEs’ is not available (for R version 3.0.2), ya no está en r-forge?
Hummmm… debería poder instalarse con install.packages(«MicroDatosEs», repos=»http://R-Forge.R-project.org»)
¿No es el caso?
> install.packages («MicroDatosEs», repos=»http://R-Forge.R-project.org»)
package ‘MicroDatosEs’ is available as a source package but not as a binary
Warning message:
package ‘MicroDatosEs’ is not available (for R version 3.0.2)
>
@Ana Tienes razón. No sé qué pasa en r-forge que está utilzando todavía una versión de R vieja y no está generando el paquete para Windows.
Voy a subirlo a CRAN y espero que eso solucione los problemas. Te aviso cuando esté.
¡Y gracias por tu interés en el paquete!
Gracias a ti por crear y compartir este valioso paquete
¡En CRAN!
Enhorabuena!
Lo tengo! Mil gracias!!!!
Hola, para leer los microdatos que ha publicado recientemente el INE del Censo 2011, ¿podré hacerlo a través de la extension MicroDataES?, de no ser así, ¿cómo puedo leer esos datos?
Estoy empezando en R por lo que no tengo mucha idea aún, muchas gracias.
Pues todavía no forma parte del paquete, pero espero tenerlo pronto preparado. De todos modos, hay una guía sobre cómo adaptar el paquete para añadir los metadatos necesarios para leer nuevos tipos de microdatos. Y no es complicado.
Estoy intentando importar los datos de la EPF (http://www.ine.es/prodyser/micro_epf2006.htm) para procesarlos en R y he topado con este proyecto. ¿dónde puedo encontrar la guía sobre cómo adaptar el paquete para añadir los metadatos necesarios para leer nuevos tipos de microdatos?
Gracias!
El problema de la EPF es que, a diferencia de otras, tiene tres ficheros de microdatos. Además, uno de ellos es bastante grande. Tengo que hacer unos cambios en el paquete para acomodarla.
Dicho lo cual, un colega me mandó hace un tiempo metadatos para cargarla (no sé si parcialmente). Tengo aún pendiente echarles un vistazo.
Si quieres, escríbeme y miramos cómo se puede incorporar. Hay gente interesada en el asunto.