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] "DESCR-DE-ABREV-DE-LAS" "DATOS-CORRE-AL-PAGO-32327"
## [3] "LICIT-ADJUD-DE-LAS-INSTI" "COMPR-PUBLI-DEL-MINIS"
## [5] "LICIT-ADJUD-POR-LAS-81483" "DATOS-CORRE-AL-PAGO-DE"
## [7] "EJECU-DE-PRESU-DE-50724" "EJECU-DE-PRESU-DE-INSTI"
## [9] "LICIT-ADJUD-POR-LAS-INSTI" "COMPR-PUBLI-DE-PRESI"
## [11] "LICIT-ADJUD-POR-LOS-MINIS" "PLANI-DEL-MINIS"
Y solo un listado de los títulos.
list_titles(url_base, api_key)
## [1] "Descripción de abreviaturas de las ejecuciones "
## [2] "Datos correspondientes al pago de planilla del Ministerio"
## [3] "Licitaciones Adjudicadas de las Instituciones Públicas para el período 2014-2015"
## [4] "Compras públicas del Ministerio de la Presidencia"
## [5] "Licitaciones adjudicadas por las Instituciones Públicas según tipo de trámite"
## [6] "Datos correspondientes al pago de planilla de Presidencia"
## [7] "Ejecución de presupuesto de Instituciones para el 2014"
## [8] "Ejecución de presupuesto de Instituciones para el 2015"
## [9] "Licitaciones adjudicadas por las Instituciones Públicas según año"
## [10] "Compras públicas de Presidencia"
## [11] "Licitaciones adjudicadas por los Ministerios"
## [12] "Ministerio de la Presidencia"
Tanto list_guid()
como list_titles()
fueron escritos para hacernos la vida mas fácil ya que los resultados tienden a ajustarse a una ventana de consola, lo cual lo hace mas fácil leerlos. Ayudan para tener una sobrevista rápida de los datos que hay disponibles.
Necesitas conocer el Identificador Global Único (GUID) de los datos que son de tu interés para poder bajar los datos a tu sesión de R. Puedes buscar el GUID en la página web. Por ejemplo para en la pagina de compras publicas del sitio de Datos Abiertos de Costa Rica hay una tabla con el titulo “Compras Públicas del Ministerio de la Presidencia”. En el menu debajo de la tabla existe la opción “obtener GUID”. Esta última abre una ventana con el GUID “COMPR-PUBLI-DEL-MINIS” que vamos a usar aquí abajo.
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 (mira mas abajo para convertir datos de divisas a números).
Observa que no necesitamos ir a la interfaz para buscar los GUID de los conjuntos de datos que nos interesan. Con la función list_guid()
como la usamos arriba obtuvimos la misma información.
datos_disponibles <- list_guid(url_base, api_key)
datos_disponibles[3]
## [1] "LICIT-ADJUD-DE-LAS-INSTI"
Obtenemos el GUID que queremos indicando que es el tercero en la lista (mira la lista completa mas arriba). Y el mismo índice se puede usar en una lista de los títulos completos que podemos crear con la función list_titles()
.
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 DESCR-DE-ABREV-DE-LAS 27 4 108
## 21 DATOS-CORRE-AL-PAGO-32327 5561 10 55610
## 3 LICIT-ADJUD-DE-LAS-INSTI 103471 7 724297
## 4 COMPR-PUBLI-DEL-MINIS 324 4 1296
## 5 LICIT-ADJUD-POR-LAS-81483 7 2 14
## 6 DATOS-CORRE-AL-PAGO-DE 2472 10 24720
## 7 EJECU-DE-PRESU-DE-50724 9249 40 369960
## 8 EJECU-DE-PRESU-DE-INSTI 8867 39 345813
## 9 LICIT-ADJUD-POR-LAS-INSTI 3 2 6
## 10 COMPR-PUBLI-DE-PRESI 427 4 1708
## 11 LICIT-ADJUD-POR-LOS-MINIS 10 2 20
## 12 PLANI-DEL-MINIS 5561 8 44488
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")
datos_con_divisas$`Monto Adjudicado` <- clean_currency(datos_con_divisas$`Monto Adjudicado`)