23 de Noviembre del 2018

Hace mucho tiempo….

datos.gob.es

  • datos.gob.es es un agregador de datos de instituciones públicas en España

  • Estos datos incluyen información a nivel estatal, pero también autonómico y local.

  • Estamos hablando de alrededor de 19.000 datasets de temas como economía, contaminación, etc..

Por suerte…. TIENE UNA API!

datos.gob.es

Yo creo que todavía no entienden la magnitud de los datos….

datos.gob.es

No, en serio….

opendataes

  • opendataes es un paquete que pretende interactuar con la API de datos.gob.es.

  • Pertence al grupo de paquetes rOpenSpain:

Y como funciona? Veamos un ejemplo.

opendataes - Demo

opendataes - Ejemplo

http://datos.gob.es/es/catalogo/l01080193-elecciones-al-parlamento-europeo-sobre-electores

remotes::install_github("ropenspain/opendataes") # Instalamos el paquete
library(opendataes)
path_id <- "l01080193-elecciones-al-parlamento-europeo-sobre-electores" # End path de la URL
elections <- cargar_datos(path_id, encoding = 'latin1') # Leemos los datos

elections
## <datos.gob.es API>
##    Description: Elecciones al Parlamento Europeo. % sobre electores
##    Publisher: Ayuntamiento de Barcelona
##    Languages: es, ca, en
##    Date of release: 2013-03-13 23:00:00
##    # of files read: 2 out of 2

¿Qué devuelve cargar_datos? (I)

elections$metadata
## # A tibble: 3 x 8
##   keywords language description url   date_issued         date_modified
##   <chr>    <chr>    <chr>       <chr> <dttm>              <chr>        
## 1 Año 200~ es       Elecciones~ http~ 2013-03-13 23:00:00 No modificat~
## 2 Año 200~ ca       Eleccions ~ http~ 2013-03-13 23:00:00 No modificat~
## 3 Año 200~ en       European P~ http~ 2013-03-13 23:00:00 No modificat~
## # ... with 2 more variables: publisher <chr>, publisher_data_url <chr>

¿Qué devuelve cargar_datos? (II)

head(elections$data[[1]], 5)
## # A tibble: 5 x 14
##     Dte Barris Participacio Abstencio ERCNECat CIU   ICVEUIA   PSC    PP
##   <int> <chr>         <dbl>     <dbl>    <dbl> <chr>   <dbl> <dbl> <dbl>
## 1    NA BARCE~          510       490      110 10,6       64    62    61
## 2     1 1. el~          375       625       75 5,1        55    63    41
## 3     1 2. el~          417       583       94 7,1        68    50    36
## 4     1 3. la~          367       633      104 5,4        42    57    33
## 5     1 4. Sa~          431       569       85 6,6        77    55    41
## # ... with 5 more variables: Cs <dbl>, PODEMOS <chr>, Altres <dbl>,
## #   Blancs <chr>, Nuls <chr>

Que puedo leer?

  • opendataes es un proyecto muy ambicioso pero con muchas limitaciones.
  • Solo se pueden los publishers que están en publishers_available.
publishers_available
## # A tibble: 1 x 2
##   publishers                publisher_code
##   <chr>                     <chr>         
## 1 Ayuntamiento de Barcelona l01080193
  • Solo se pueden leer los formatos que están en permitted_formats.
permitted_formats
## [1] "csv"

Porque estas grandes limitaciones?

opendataes: workflow

opendataes se puede escalar?

Puedo leer muchos datos juntos? Si! opendataes te permite explorar los datos a través de R.

  • En primer lugar, vemos los publicadores disponibles a través de publishers_available. Filtramos por el Ayto. de Barcelona y exploramos los keywords:
pb_code <- publishers_available$publisher_code[publishers_available$publishers ==
                                                 'Ayuntamiento de Barcelona']
kw <- explorar_keywords('elecciones', pb_code)
head(kw, 3)
## # A tibble: 3 x 5
##   description         publisher    is_readable path_id       url          
##   <chr>               <chr>        <lgl>       <chr>         <chr>        
## 1 Elecciones al Parl~ Ayuntamient~ TRUE        l01080193-el~ http://datos~
## 2 Elecciones al Parl~ Ayuntamient~ TRUE        l01080193-el~ http://datos~
## 3 Elecciones al Parl~ Ayuntamient~ TRUE        l01080193-el~ http://datos~

opendataes se puede escalar? (continuación)

  • cargar_datos requiere de un dataframe con solo una fila, por lo que tendremos que seleccionar solo aquella fila que deseamos:
final_dt <- kw[grepl("Elecciones Locales. Absolutos", kw$description), ]
elections <- cargar_datos(final_dt, encoding = 'latin1')
elections
## <datos.gob.es API>
##    Description: Elecciones Locales. Absolutos
##    Publisher: Ayuntamiento de Barcelona
##    Languages: es, ca, en
##    Date of release: 2013-03-13 23:00:00
##    # of files read: 3 out of 3

¿Qué devuelve cargar_datos? (I)

1. Los datos (si pudieron ser leídos).

head(elections$data[[1]], 5)
## # A tibble: 5 x 10
##     DTE BARRIS ELECTORS VOTANTS `PSC-PM`    CIU     PP `ICV-EUIA-EPM`
##   <int> <chr>     <dbl>   <dbl>    <dbl>  <dbl>  <dbl>          <dbl>
## 1     1 1. el~     27.0    9.57     3.34   1.64   1.45           1.17
## 2     1 2. el~     11.1    4.45     1.30 969    525            681   
## 3     1 3. la~     10.7    4.30     1.58 789    486            369   
## 4     1 4. Sa~     14.1    6.32     1.91   1.36 808            958   
## 5     2 5. el~     22.9   12.8      3.25   3.72   1.83           1.24
## # ... with 2 more variables: `ERC-AM` <dbl>, `ALTRES(UN)` <dbl>

¿Qué devuelve cargar_datos? (II)

2. Metadata relativa a los mismos.

elections$metadata
## # A tibble: 3 x 8
##   keywords language description url   date_issued         date_modified
##   <chr>    <chr>    <chr>       <chr> <dttm>              <chr>        
## 1 Absolut~ es       Elecciones~ http~ 2013-03-13 23:00:00 No modificat~
## 2 Absolut~ ca       Eleccions ~ http~ 2013-03-13 23:00:00 No modificat~
## 3 Absolut~ en       Local Elec~ http~ 2013-03-13 23:00:00 No modificat~
## # ... with 2 more variables: publisher <chr>, publisher_data_url <chr>

Colaboración

Estamos live!

Estamos intentando leer todos los datos de Madrid y Murcia para incluirlos como publishers!