Introducción

El API de Junar es la base para varias iniciativas de Datos Abiertos en Latino América y los EEUU. El paquete junr facilita el acceso a estos datos desde R. El objetivo es fomentar el uso de los datos disponibles haciendo el acceso lo mas fácil. Algunos ejemplos de implementaciones son: el Portal de Datos Abiertos del Gobierno de Costa Rica y la Ciudad de Córdoba (Argentina) entre otros. Otros se pueden encontrar en el sitio web de Junar.

Ejemplos de uso

Como ejemplo vamos a usar los datos de la casa presidencial de Costa Rica. Lo primero es ir al sitio correspondiente para encontrar el URL base (base_url) y obtener un API Key para obtener acceso al API de Junar en la página de Datos Abiertos Costa Rica.

library(junr)
url_base <- "http://api.datosabiertos.presidencia.go.cr/api/v2/datastreams/"
api_key <- "0bd55e858409eefabc629b28b2e7916361ef20ff" 

Miremos primero cuales datos hay disponibles en este URL.

get_index(url_base, api_key)

No mostramos los resultados aquí porque el indice es la lista completa con todos los meta-datos incluidos como una hoja de datos (data frame) en R.

Para tener solo una lista de los GUID la instrucción es:

list_guid(url_base, api_key)
##  [1] "PLANI-DEL-MINIS"           "DATOS-CORRE-AL-PAGO-DE"   
##  [3] "COMPR-PUBLI-DEL-MINIS"     "LICIT-ADJUD-POR-LAS-81483"
##  [5] "LICIT-ADJUD-POR-LOS-MINIS" "LICIT-ADJUD-POR-LAS-INSTI"
##  [7] "LICIT-ADJUD-DE-LAS-INSTI"  "DATOS-CORRE-AL-PAGO-32327"
##  [9] "DESCR-DE-ABREV-DE-LAS"     "EJECU-DE-PRESU-DE-50724"  
## [11] "EJECU-DE-PRESU-DE-INSTI"   "COMPR-PUBLI-DE-PRESI"

Y solo un listado de los títulos.

list_titles(url_base, api_key)
##  [1] "Ministerio de la Presidencia"                                                    
##  [2] "Datos correspondientes al pago de planilla de Presidencia"                       
##  [3] "Compras públicas del Ministerio de la Presidencia"                               
##  [4] "Licitaciones adjudicadas por las Instituciones Públicas según tipo de trámite"   
##  [5] "Licitaciones adjudicadas por los Ministerios"                                    
##  [6] "Licitaciones adjudicadas por las Instituciones Públicas según año"               
##  [7] "Licitaciones Adjudicadas de las Instituciones Públicas para el período 2014-2015"
##  [8] "Datos correspondientes al pago de planilla del Ministerio"                       
##  [9] "Descripción de abreviaturas de las ejecuciones "                                 
## [10] "Ejecución de presupuesto de Instituciones para el 2014"                          
## [11] "Ejecución de presupuesto de Instituciones para el 2015"                          
## [12] "Compras públicas de Presidencia"

Estas dos anteriores ayudan para tener una sobrevista rápida de los datos que hay disponibles.

Obviamente, si conoces el GUID de interés lo puedes usar directamente para obtener los datos. Por ejemplo para los datos de la presidencia Costarricense:

guid_datos <- "COMPR-PUBLI-DEL-MINIS"
datos_compras <- get_data(url_base, api_key, guid_datos)

Con View(datos_compras) podrás comprobar que los datos han sido bajado desde la plataforma Junar y han sido convertidos a una hoja de datos (data frame) en R.

Determinar la cantidad de datos disponibles

En las plataformas que corren en Junar se encuentran muchos datos que no son mas que tablas (datos ya trabajados y resumidos). Por eso es útil poder ver de una vez cuantos filas hay detrás de cada GUID en el URL disponible.

En junr lo puedes hacer rápidamente usando la función get_dimensions para obtener una tabla con todos los GUID y las dimensiones de los datos:

get_dimensions(url_base, api_key)
##                         GUID   NROW NCOL    DIM
## 2            PLANI-DEL-MINIS   5561    8  44488
## 21    DATOS-CORRE-AL-PAGO-DE   2472   10  24720
## 3      COMPR-PUBLI-DEL-MINIS    324    4   1296
## 4  LICIT-ADJUD-POR-LAS-81483      7    2     14
## 5  LICIT-ADJUD-POR-LOS-MINIS     10    2     20
## 6  LICIT-ADJUD-POR-LAS-INSTI      3    2      6
## 7   LICIT-ADJUD-DE-LAS-INSTI 103471    7 724297
## 8  DATOS-CORRE-AL-PAGO-32327   5561   10  55610
## 9      DESCR-DE-ABREV-DE-LAS     27    4    108
## 10   EJECU-DE-PRESU-DE-50724   9249   40 369960
## 11   EJECU-DE-PRESU-DE-INSTI   8867   39 345813
## 12      COMPR-PUBLI-DE-PRESI    427    4   1708

Limpiar valores de divisas

Por lo menos en los datos ejemplo arriba, pero posiblemente en mas implementaciones de Junar, hay que limpiar todos los datos que corresponden a divisas. En nuestro caso hay que buscar todos los símbolos de la divisa (Colon Costarricense), y todas las comas ya que estas hacen que para R son valores de Texto y no números.

Hay un para de utilidades para hacerlo clean_currency y get_currency_symbol. Por ejemplo:

datos_con_divisas <- get_data(url_base, api_key, "LICIT-ADJUD-POR-LOS-MINIS")