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.
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.
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
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")