PortalHacienda
Un paquete de interfase a la API del Portal de Datos del Ministerio de Hacienda
- Buscar series en la descripción de los meta-datos
- Descargar las series directamente de la API del Portal
- Extender y proyectar rápidamente series descargadas (funcionalidad muy básica)
Instalación
Para instalar el paquete desde CRAN con:
install.packages("PortalHacienda")
Instalar versión de desarrollo:
# install.packages("devtools")
devtools::install_github("fmgarciadiaz/PortalHacienda-CRAN")
Nota: Debe instalarse previamente el paquete devtools
para permitir la descarga desde github
.
Ejemplo
Búsqueda de series en la base de meta-datos online con Search_online
.
# Cargar el paquete
library(PortalHacienda)
#> =============================================================================
#> Acceso API Portal Datos Hacienda - v 0.1.7 - 06-2023 por F.García Díaz
# Buscar series relacionadas con el tipo de cambio
Series_TCN <- Search_online("tipo de cambio")
#> Downloading time-series database...
#> | | | 0% | | | 1% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |== | 4% | |=== | 4% | |==== | 5% | |==== | 6% | |===== | 6% | |===== | 7% | |===== | 8% | |====== | 8% | |====== | 9% | |======= | 9% | |======= | 10% | |======= | 11% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========= | 14% | |========== | 14% | |========== | 15% | |=========== | 15% | |=========== | 16% | |============ | 16% | |============ | 17% | |============ | 18% | |============= | 18% | |============= | 19% | |============== | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |=============== | 22% | |================ | 22% | |================ | 23% | |================= | 24% | |================= | 25% | |================== | 25% | |================== | 26% | |=================== | 27% | |=================== | 28% | |==================== | 28% | |==================== | 29% | |===================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |====================== | 32% | |======================= | 32% | |======================= | 33% | |======================== | 34% | |======================== | 35% | |========================= | 35% | |========================= | 36% | |========================== | 36% | |========================== | 37% | |========================== | 38% | |=========================== | 38% | |=========================== | 39% | |============================ | 39% | |============================ | 40% | |============================ | 41% | |============================= | 41% | |============================= | 42% | |============================== | 42% | |============================== | 43% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 46% | |================================= | 47% | |================================= | 48% | |================================== | 48% | |================================== | 49% | |=================================== | 49% | |=================================== | 50% | |=================================== | 51% | |==================================== | 51% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 59% | |========================================== | 60% | |========================================== | 61% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 62% | |============================================ | 63% | |============================================= | 64% | |============================================= | 65% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================= | 71% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 72% | |=================================================== | 73% | |==================================================== | 74% | |==================================================== | 75% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |======================================================== | 81% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 82% | |========================================================== | 83% | |========================================================== | 84% | |=========================================================== | 84% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 92% | |================================================================= | 93% | |================================================================== | 94% | |================================================================== | 95% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 99% | |======================================================================| 100%
# Borrar la columna de links que devuelve la búsqueda y un par más
Series_TCN$distribucion_url_descarga <- NULL
Series_TCN$dataset_id <- NULL
Series_TCN$dataset_descripcion <- NULL
# mostrar prieras tres líneas de la tabla
kableExtra::kable_styling(knitr::kable(head(Series_TCN,3) ,"html"),
font_size = 6,
bootstrap_options = c("striped", "hover", "condensed", "responsive"),fixed_thead = T)
catalogo_id | distribucion_id | serie_id | indice_tiempo_frecuencia | serie_titulo | serie_unidades | serie_descripcion | distribucion_titulo | distribucion_descripcion | dataset_responsable | dataset_fuente | dataset_titulo | dataset_tema | serie_indice_inicio | serie_indice_final | serie_valores_cant | serie_dias_no_cubiertos | serie_actualizada | serie_valor_ultimo | serie_valor_anterior | serie_var_pct_anterior |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
siep | 1.1 | tcrse_2weZeH | R/P1M | tcrse_alimentos | Índice - Base Noviembre 2015=100 | Índice de Tipo de Cambio Real Sectorial Efectivo. Producción y procesamiento de alimentos | Índice de Tipo de Cambio Real Sectorial Efectivo (series) | Índice de Tipo de Cambio Real Sectorial Efectivo en formato de series de tiempo | Ministerio de Producción. Secretaría de Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Ministerio de Producción. Secretaría de la Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Índice de Tipo de Cambio Real Sectorial Efectivo | Sector Externo | 2014-01-01 | 2018-07-01 | 55 | 51 | TRUE | 156.4 | 155.6 | 0.0051414 |
siep | 1.1 | tcrse_49xDd3 | R/P1M | tcrse_impresion | Índice - Base Noviembre 2015=100 | Índice de Tipo de Cambio Real Sectorial Efectivo. Actividades de impresión | Índice de Tipo de Cambio Real Sectorial Efectivo (series) | Índice de Tipo de Cambio Real Sectorial Efectivo en formato de series de tiempo | Ministerio de Producción. Secretaría de Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Ministerio de Producción. Secretaría de la Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Índice de Tipo de Cambio Real Sectorial Efectivo | Sector Externo | 2014-01-01 | 2018-07-01 | 55 | 51 | TRUE | 155.9 | 155.7 | 0.0012845 |
siep | 1.1 | tcrse_4sgTaJ | R/P1M | tcrse_cuero | Índice - Base Noviembre 2015=100 | Índice de Tipo de Cambio Real Sectorial Efectivo. Productos del cuero | Índice de Tipo de Cambio Real Sectorial Efectivo (series) | Índice de Tipo de Cambio Real Sectorial Efectivo en formato de series de tiempo | Ministerio de Producción. Secretaría de Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Ministerio de Producción. Secretaría de la Transformación Productiva. Subsecretaría de Desarrollo y Planeamiento Productivo. | Índice de Tipo de Cambio Real Sectorial Efectivo | Sector Externo | 2014-01-01 | 2018-07-01 | 55 | 51 | TRUE | 151.7 | 151.0 | 0.0046358 |
Bajar serie de tipo de cambio con Get
y extender 12 períodos con Forecast
(usa modelo auto-detectado del paquete forecast y extiende según la frecuencia detectada, días, meses o años). Luego hacer un plot sencillo.
TCN <- Forecast(Get("174.1_T_DE_CATES_0_0_32" , start_date = 2000), 12)
#> Downloading data series...
#> Loaded 279 data points, from 2000-01-01 to 2023-03-01. Periodicity: monthly
#> Registered S3 method overwritten by 'quantmod':
#> method from
#> as.zoo.data.frame zoo
#> Warning in .check_tzones(e1, e2): 'tzone' attributes are inconsistent
#> Time-series extended 12 data points, using auto-detected model: ARIMA(0,2,3)(0,0,1)[12]
# Mostrar resultado
plot(TCN , main = "Tipo de Cambio Nominal ($/USD)")
También se pueden obtener varias series al mismo tiempo, separando con comas…
plot(Get("6.2_AGCS_2004_T_39,6.2_IM_2004_T_23,6.2_C_2004_T_12") , legend.loc = "topleft" , main = "VAB sectorial ($ de 2004)")
#> Downloading data series...
#> Loaded 228 data points, from 2004-01-01 to 2022-10-01. Periodicity: quarterly
En caso de cargar varias series y desear proyecciones automáticas, utilizar la variante vectorial de Forecast
, que es vForecast
:
TCN <- vForecast(Get("120.1_PCE_1993_0_24,120.1_ED1_1993_0_26"),12)
#> Downloading data series...
#> Loaded 70 data points, from 1986-01-01 to 2020-01-01. Periodicity: yearly
#> Warning in .check_tzones(e1, e2): 'tzone' attributes are inconsistent
#> Time-series extended 12 data points, using auto-detected models
Nota:
Las series se cargan en formato XTS, con la periodicidad auto-detectada por el paquete xts
. La periocidiad es usada por la función Forecast
para correcta detección de estacionalidad y lags. Forecast
agrega demás intervalos de confianza del 95%.
Cómo citar
Fernando García Díaz. (2020, June 14). fmgarciadiaz/PortalHacienda-CRAN. https://doi.org/10.5281/zenodo.3893947
Estado del Proyecto
- [x] Aprobado en CRAN!
- [x] Funcionalidad básica
- [x] Captura de errores - conexión de internet, errores devueltos por la API, timeout, etc.
- [x] Mejorar la documentación
- [ ] Mejora de la función Search_online (i.e. evitar una descarga por búsqueda)