rOpenSpain / INEbaseR

R Package for obtaining and analyzing open data from INE (Instituto Nacional de Estadística)
https://inebaser.wordpress.com/
GNU General Public License v3.0
23 stars 7 forks source link

Error en get_data_serie() y get_data_table() #1

Closed jammoyano closed 5 years ago

jammoyano commented 5 years ago

Al utilizar get_data_serie() o get_data_table() devuelve un objeto "list" en lugar de un dataframe.

En mi caso, estas son las opciones utilizadas:

ee <- get_data_serie("EOT7592", "2017-01-01")
ff <- get_data_serie("EOT7592", "2017-01-01", det = 2)
dd <- get_data_table("EOT7592", nult = 5)

Sin embargo, utilizando la opción highcharts_series funciona correctamente.

highcharts_series("EOT7592", "2010-01-01")

Un saludo y mil gracias.

oddworldng commented 5 years ago

Buenas, gracias por escribir tus dudas,

Ten en cuenta que la librería INEbaseR devuelve el objeto en R que devuelve por defecto la API del INE, pero hay algunas funciones de desarrollo propio como highcharts_series que han sido personalizadas para que devuelvan los datos en un formato específico.

Por otro lado, ten en cuenta que la función get_data_serie devuelve una lista que contiene un campo Data, seguramente sea este el data.frame que andas buscando.

Puedes hacer esto: ee <- get_data_serie("EOT7592", "2017-01-01")$Data

Y de esta forma te quedas sólo con los datos y descartas los metadatos, aunque también puedes hacer esto:

ee <- get_data_serie("EOT7592", "2017-01-01")
ee_data <- ee$Data

Con respecto a la función get_data_table, ten en cuenta que le estás pasando como primer parámetro la serie EOT7592 (Nacional. Viajeros. Andalucía: Costa Del Sol (Málaga). Residentes en el extranjero.), y realmente deberías pasarle el código identificativo de la tabla.

Te dejo un enlace a la API del INE donde se detalla más información sobre la función get_data_table:

Entra en este enlace, y lee el apartado Obtener los n últimos datos de una tabla.

Espero haber podido aclararte algo.

Un saludo, Andrés Nacimiento.

jammoyano commented 5 years ago

Muchísimas gracias por toda la información. la solución get_data_serie()$Data funciona a la perfeción ... ya sólo me queda jugar con los datos.

Respecto a get_data_table() me apunto el fallo ;) y me pongo a estudiar.

Un saludo y mil gracias.

oddworldng commented 5 years ago

Gracias a ti por las dudas y por utilizar esta librería.

Un saludo, Andrés Nacimiento.

oddworldng commented 5 years ago

Buenas tardes,

Aunque no soy un experto en el tema, si quieres te explico un poco por encima cómo funcionan las tablas del INE (Instituto Nacional de Estadística).

Primero debes de obtener las tablas de una operación estadística, esto lo puedes hacer con la función get_tables_operation:

tables <- get_tables_operation("IPC")

Nota: no todas las operaciones estadísticas tienen tablas, en tu caso, la operación EOT (Encuesta de Ocupación en Alojamientos Turísticos), si ejecutas get_tables_operation("EOT"), no devuelve nada porque no dispone de tablas.

En estas tablas se encuentran cruces de variables. Puedes ver qué variables han sido cruzadas en cada tabla utilizando la función get_tables_group:

table_group <- get_tables_group(22344)

De la función anterior, puedes obtener el id del grupo y en conjunto con el id de la tabla, puedes consultar sus valores con la función get_tables_group_values:

table_group_values <- get_tables_group_values(22344, 81481)

Aunque lo interesante aquí es poder consultar los datos. Esto se puede hacer con la función get_data_table, indicando los n-últimos datos que deseas consultar:

table_data <- get_data_table(22344, nult = 5)

Espero que te sirva como ayuda para comprender un poco mejor cómo se utilizan y qué son las tablas del INE (Instituto Nacional de Estadística).

Un saludo, Andrés Nacimiento.