Datos abiertos
Desde el Ministerio de Modernización de la Nación se propone la transparencia desde el acceso abierto a los datos del Estado. Es una iniciativa muy loable. Aunque, por ahora, son pocos datasets los que están disponibles. Espero que en el futuro aumente ya que es mucha la información que se produce en el Estado.
La plataforma datos.gob.ar está desarrollada con
ckan. Esta plataforma de datos abiertos tiene una API
para el acceso a los datos desde scripts. En R,
hay una interfaz general a la API que provee ckan. La interfaz (ckanr) ha
sido desarrollada (rOpenSci)[ropensci.org]. Está disponible en
CRAN y la
versión de desarrollo en GitHub.
Vamos a instarla en R, bajar y analizar alguno de los datasets disponibles en datos.gob.ar
## Probamos si está instaldo crankr y sino lo instalamos
if(!require("ckanr", quietly = TRUE, warn.conflicts = FALSE)){
install.packages("ckanr")
library("ckanr")
}Ahora vamos a probar ver que datasets están disponibles en datos.gob.ar. Primero
hay que configurar ckanr para que use la url de datos.gob.ar
## Lo configuramos
ckanr_setup(url = "http://datos.gob.ar")
## Y comprobamos que haya cambiado
ckanr_settings()## <ckanr settings>
## Base URL: http://datos.gob.ar
## API key:
## Test CKAN URL:
## Test CKAN API key:
## Test CKAN dataset ID:
## Test CKAN resource ID:
## Test CKAN group ID:
## Test CKAN organization ID:
## Test behaviour if CKAN offline:Probamos nuestra conexión al servidor:
ckan_info()## $ckan_version
## [1] "2.5.1"
##
## $site_url
## [1] "http://datos.gob.ar"
##
## $site_description
## [1] ""
##
## $site_title
## [1] "CKAN"
##
## $error_emails_to
## NULL
##
## $locale_default
## [1] "es"
##
## $extensions
## [1] "stats" "text_view" "image_view"
## [4] "recline_view" "datastore" "recline_grid_view"
## [7] "datapusher" "hierarchy_display" "hierarchy_form"
## [10] "gobar_theme"Ahora podemos empezar por ver que datasets están disponibles
# Guardo los datasets porque después vamos a usar el nombre como id
# Y son muy largos como para estar escribiendolos cada vez
(datasets <- package_list())## [[1]]
## [1] "asignacion-salarial-de-las-autoridades-superiores-del-poder-ejecutivo-nacional"
##
## [[2]]
## [1] "declaraciones-juradas-patrimoniales-integrales"
##
## [[3]]
## [1] "ejecucion-presupuestaria-de-la-administracion-publica-nacional"
##
## [[4]]
## [1] "estructura-organica-pen"
##
## [[5]]
## [1] "pauta-oficial"
##
## [[6]]
## [1] "registro-central-de-personas-contratadas"
##
## [[7]]
## [1] "registro-unico-audiencias-gestion-intereses"
##
## [[8]]
## [1] "sistema-de-contrataciones-electronicas-argentina-compra"
##
## [[9]]
## [1] "solicitudes-acceso-informacion-publica"Esos son los datasets disponibles (9) al momento de realizar este post.
Con package_activiy_list() vemos todas las veces que fue modificado
un dataset. Aunque no se que diferencia hay con lo que devuelve package_revision_list().
Probablemente haya que investigar un poco más. La ayuda de la función
package_revision_list()dice que devuelve una lista de las revisiones del
dataset como una lista de diccionarios (es decir clave:valor), mientras que
las package_activity_list() devuelve la actividad del dataset.
Otras funciones relativas a los datasets (packages en la jerga de ckan)
es package_list_current() muestra mucha información sobre los datasets. Mucha
de ella relativa al sitio web. Una mucho más interesante es package_search()
que busca términos en los metadatos de los datasets.
package_search("presupuesto")## $count
## [1] 2
##
## $sort
## [1] "score desc, metadata_modified desc"
##
## $facets
## named list()
##
## $results
## $results[[1]]
## <CKAN Package> 89f1a2dd-ad79-4211-87b4-44661d81ac0d
## Title: Ejecución Presupuestaria de la Administración Pública Nacional
## Creator/Modified: 2016-03-07T21:17:11.594671 / 2016-08-26T18:55:44.935384
## Resources (up to 5): Presupuesto Nacional Año 2016
## Tags (up to 5): Economía, Gastos, Recursos
## Groups (up to 5): administracion-publica, economia-y-finanzas
##
## $results[[2]]
## <CKAN Package> 069b5833-e57d-4d7a-859b-67a80cfdff20
## Title: Sistema de Contrataciones Electrónicas (Argentina Compra)
## Creator/Modified: 2016-04-14T19:48:05.433640 / 2016-04-19T14:38:05.989886
## Resources (up to 5): Convocatorias 2015, Adjudicaciones 2015, Sistema de Información de Proveedores (SIPRO), Catálogo de Bienes y Servicios (SIByS)
## Tags (up to 5): Adjudicaciones, Bienes, Catálogo, Compras, Concursos
## Groups (up to 5): administracion-publica, economia-y-finanzas
##
##
## $search_facets
## named list()Y package_show() muestra información referida a algún dataset en particular.
package_show(datasets[[1]])## <CKAN Package> 431381cc-3c5b-49ba-bf77-47bf658cd640
## Title: Asignación Salarial de las Autoridades Superiores del Poder Ejecutivo Nacional
## Creator/Modified: 2016-06-15T18:34:54.361766 / 2016-08-12T16:36:24.686790
## Resources (up to 5): Asignación Salarial de las Autoridades del Poder Ejecutivo Nacional 2016
## Tags (up to 5): Asignaciones, Autoridades Superiores, Estructura, Salarios, Sueldos
## Groups (up to 5): administracion-publicaHay más funciones como para crear, actualizar y borrar datasets, pero para eso hay que tener una clave.
Con organization_list() podemos ver todas instituciones del gobierno que hay provistos datos y otra información como cuantos datos y el número de usuarios.
Y usando organization_show y el hash de una organización en particular
podemos ver la información solo de esa.
organization_show(id = "9737ede6-2aaf-4ddb-89ca-fe40f9aea73d")## <CKAN Organization> 9737ede6-2aaf-4ddb-89ca-fe40f9aea73d
## Name: subsecretaria-de-reforma-institucional-y-fortalecimiento-de-la-democracia
## Display name: Subsecretaría De Reforma Institucional Y Fortalecimiento De La Democracia
## No. Packages: 2
## No. Users: 1También es posible buscar algún recurso en particular. Los recursos son en
general archivos con datos. Las búsquedas se realizan en el formato
clave:valor. Las claves pueden se cualquiera que use para clasificar el
recurso. Estos son todos las posibles claves:
names(resource_search(q = "name:presupuesto")$results[[1]])## [1] "cache_last_updated" "package_id" "webstore_last_updated"
## [4] "id" "size" "state"
## [7] "last_modified" "hash" "description"
## [10] "format" "mimetype_inner" "url_type"
## [13] "mimetype" "cache_url" "name"
## [16] "created" "url" "webstore_url"
## [19] "position" "revision_id" "resource_type"Está claro que hay algunos que serán más útiles que otros. Por ejemplo, para buscar todos los recursos en formato CSV:
# Guardamos los resultados como tabla para que sea más fácil manipular
csv <- resource_search(q = "format:csv", as = "table")[[2]]Por defecto, la información mostrada es limitada. Pero si guardamos los resultados podemos extraer la url del archivo.
csv$url## [1] "http://datos.gob.ar/dataset/069b5833-e57d-4d7a-859b-67a80cfdff20/resource/fa3603b3-0af7-43cc-9da9-90a512217d8a/download/convocatorias-2015.csv"
## [2] "http://datos.gob.ar/dataset/122808ec-dcd1-4a9b-aafe-8fa80ac2a2f4/resource/0c3cca0a-ccfa-4520-a614-dbdd58d74d79/download/pauta-oficial-primer-semestre-2016.csv"
## [3] "http://datos.gob.ar/dataset/2889b09e-31ca-4f90-912e-2a50db874e33/resource/dcc74a80-55fa-4e9c-b025-e0d321aa36ee/download/audiencias.csv"
## [4] "http://datos.gob.ar/dataset/431381cc-3c5b-49ba-bf77-47bf658cd640/resource/d3fe3a9a-551b-407d-ba19-bfbad00f86e5/download/salarios-2016.csv"
## [5] "http://datos.gob.ar/dataset/5dde9735-6a0a-4f85-8afd-afc6854c3c2c/resource/06b05d72-f4c2-4175-a6b9-5d762cd5cd64/download/declaraciones-juradas-2014.csv"
## [6] "http://datos.gob.ar/dataset/89f1a2dd-ad79-4211-87b4-44661d81ac0d/resource/84e23782-7d52-4724-a4ba-2f9621fa5f4e/download/presupuesto-2016.csv"
## [7] "http://datos.gob.ar/dataset/8bc053c8-efc2-485d-97d3-915c476d2741/resource/63952097-cdba-4fdd-be84-65fb400bdb1a/download/acceso-informacion-publica.csv"
## [8] "http://datos.gob.ar/dataset/ad5b0e15-a9ed-40d5-9827-33a0ece12433/resource/b705d8c1-650f-43cc-bde6-68850fcecd21/download/estructura-organica.csv"
## [9] "http://datos.gob.ar/dataset/becaceb2-dbd0-4879-93bd-5f02bd3b8ca2/resource/bf2f67f4-9ab3-479b-a881-56b43565125e/download/contratos-2015.csv"
## [10] "http://datos.gob.ar/dataset/069b5833-e57d-4d7a-859b-67a80cfdff20/resource/41fcfdb2-fdb3-4855-89b2-09d9f7c6bbc8/download/adjudicaciones-2015.csv"
## [11] "http://datos.gob.ar/dataset/122808ec-dcd1-4a9b-aafe-8fa80ac2a2f4/resource/01bd7d9f-bc54-4fd7-b800-a4969a2a5b6f/download/pauta-oficial-2015.csv"
## [12] "http://datos.gob.ar/dataset/5dde9735-6a0a-4f85-8afd-afc6854c3c2c/resource/f5101909-31be-45f5-aba8-c2b2459d29d5/download/declaraciones-juradas-2015.csv"
## [13] "http://datos.gob.ar/dataset/069b5833-e57d-4d7a-859b-67a80cfdff20/resource/c19a2467-5232-41ae-bb0c-75dcd71e7c5f/download/proveedores-sipro.csv"
## [14] "http://datos.gob.ar/dataset/122808ec-dcd1-4a9b-aafe-8fa80ac2a2f4/resource/98a8c15f-5937-47fe-92e3-05d755be7d43/download/pauta-oficial-2014.csv"
## [15] "http://datos.gob.ar/dataset/069b5833-e57d-4d7a-859b-67a80cfdff20/resource/8d0dafbd-bd9c-48b6-81c3-05f492647974/download/items-sibys.csv"Y usarla para bajar.
De igual manera se puede realizar con packages.
package_show(datasets[[1]])$resources[[1]]$url## [1] "http://datos.gob.ar/dataset/431381cc-3c5b-49ba-bf77-47bf658cd640/resource/d3fe3a9a-551b-407d-ba19-bfbad00f86e5/download/salarios-2016.csv"Va a ser muy conveniente ampliar o crear un nuevo paquete para que sea más sencillo encontrar estas cosas.
Ahora voy a bajar el archivo de datos del presupuesto.
library("readr")
library("dplyr")
library("stringr")
library("ggplot2")
library("scales")
library("ggthemes")
library("plotly")
library("tidyr")
if (!dir.exists("data")) dir.create("data")
URL <- csv$url[str_detect(csv$url, "presupuesto")]
fil <- paste0("data/", basename(URL))
if (!file.exists(fil)) download.file(URL, fil)
presupuesto_2016 <- read_csv(fil, locale = locale(decimal_mark = ",") )
# Eliminar un caracter extraño que indica el BOM (byte order mark)
names(presupuesto_2016) <- str_replace(names(presupuesto_2016), "\uFEFF", "")En el presupuesto hay mucha información. La información se encuentra bastante desagregada, estoy seguro que algún periodista de datos podrá sacarles mucho jugo. Toda la información sobre los campos del archivo la pueden encontrar acá
Dejo algunos gráficos a modo de ejemplo.