https://github.com/calderonsamuel/perutranspaeconomica
Obtener datos del Portal de Transparencia Económica Perú con una interfaz de programación consistente y escalable
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.0%) to scientific vocabulary
Keywords
peru
r
Last synced: 9 months ago
·
JSON representation
Repository
Obtener datos del Portal de Transparencia Económica Perú con una interfaz de programación consistente y escalable
Basic Info
- Host: GitHub
- Owner: calderonsamuel
- License: other
- Language: R
- Default Branch: main
- Homepage: https://perutranspaeconomica.samuelenrique.com
- Size: 6.84 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 6
- Releases: 3
Topics
peru
r
Created almost 4 years ago
· Last pushed about 2 years ago
Metadata Files
Readme
Changelog
License
Code of conduct
README.Rmd
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
options(pillar.min_chars = 30)
```
# perutranspaeconomica


[](https://app.codecov.io/gh/calderonsamuel/perutranspaeconomica?branch=main)
[](https://github.com/calderonsamuel/perutranspaeconomica/actions/workflows/R-CMD-check.yaml)
[](https://lifecycle.r-lib.org/articles/stages.html#stable)
El objetivo de `{perutranspaeconomica}` es contar con una manera de obtener datos del Portal de Transparencia Económica Perú con una interfaz de programación consistente y escalable.
## Code of Conduct
Please note that the perutranspaeconomica project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.
## Instalación
Existen varias maneras de descargar el paquete. En primer lugar, puedes descargar
la versión estable desde CRAN:
```r
install.packages('perutranspaeconomica')
```
Otra opción es instalar la versión en desarrollo desde mi [R-universe](https://calderonsamuel.r-universe.dev/):
```r
# Habilita el repositorio calderonsamuel
options(repos = c(
calderonsamuel = 'https://calderonsamuel.r-universe.dev',
CRAN = 'https://cloud.r-project.org'))
# Descargar e instalar perutranspaeconomica en R
install.packages('perutranspaeconomica')
```
La versión en desarrollo también puede descargarse desde [GitHub](https://github.com/) con:
``` r
# install.packages("remotes")
remotes::install_github("calderonsamuel/perutranspaeconomica")
```
## Ejemplo
Con este paquete puedes realizar consultas del Portal de Transparencia Económica del MEF-Perú, específicamente de los módulos de [Consulta de gasto presupuestal](http://apps5.mineco.gob.pe/transparencia/) y de [Consulta de Ingreso Presupuestal](http://apps5.mineco.gob.pe/transparenciaingresos/).
El paquete propone un flujo de trabajo de 1) iniciar consulta, 2) elegir parámetros, y 3) ejecutar consulta. Para ello, se ha creado la clase `` para consolidar una infraestructura interna consistente. El usuario común no va a necesitar interactuar con esa infraestructura directamente ya que se han agregado funciones de soporte que habilitan una interfaz de programación más amigable.
Empezamos por cargar el paquete:
```{r example}
library(perutranspaeconomica)
```
### Iniciar consulta
Para iniciar una consulta tan solo hace falta usar la función `iniciar_transparencia_economica()`. Esto crea un objeto vacío y muestra los parámetros de consulta agregados. Al inicio no tenemos parámetros ni data.
```{r}
iniciar_transparencia_economica()
```
### Elegir parámetros de consulta
La elección de parámetros de consulta se hace con las funciones que empiezan con `elegir_*()`.
Para consultas en el módulo de gasto presupuestal, se pueden utilizar las siguientes:
- `elegir_periodo_anual()`
- `elegir_quien_gasta()`
- `elegir_en_que_se_gasta()`
- `elegir_con_que_se_financia()`
- `elegir_como_se_estructura_gasto()`
- `elegir_cuando_se_hizo_gasto()`
- `elegir_donde_se_gasta()`
Para consultas en el módulo de ingreso presupuestal, se pueden utilizar las siguientes:
- `elegir_periodo_anual()`
- `elegir_quien_recauda()`
- `elegir_fuentes_de_recaudacion()`
- `elegir_como_se_estructura_recaudacion()`
- `elegir_cuando_se_hizo_recaudacion()`
En ambos módulos, la mínima requerida es `elegir_periodo_anual()`.
Una vez que se le agrega parámetros a la consulta, la interfaz lo refleja.
```{r}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(periodo = 2023)
```
Cada argumento de las funciones `elegir_*()` puede aceptar vectores con más de un elemento para una consulta más potente.
```{r}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(periodo = 2020:2023)
```
Con excepción de `elegir_periodo_anual()`, es necesario que las funciones `elegir_*()` tengan, en su conjunto, al menos un argumento definido como `"todos"`. Más adelante se verá que en caso contrario la consulta no prosperará.
```{r}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(periodo = 2023) %>%
elegir_quien_gasta(nivel = "E") %>%
elegir_donde_se_gasta(departamento_meta = "todos") # <- aquí se usó "todos"
```
Todos los métodos `elegir_*()` cuentan con documentación referente a cómo deben ser usados. Para mayor detalle consultar el método específico. Por ejemplo, `help("elegir_quien_gasta")` o `?elegir_quien_gasta`.
La elección de parámetros no prosperará si se intenta definir más de un parámetro como `"todos"`.
```{r, error=TRUE}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(2022) %>%
elegir_quien_gasta(nivel = "todos") %>%
elegir_donde_se_gasta(departamento_meta = "todos")
```
Todas las funciones de `elegir_*()` tratan de validar que los inputs provistos tengan una forma adecuada. Por ejemplo, `generica` debe seguir la forma `"0-0-0"`, donde cada `0` representa un dígito. Al proveer un input mal formado, la validación provocará un error e indicará una expresión regular o listado de valores apropiados para el parámetro.
```{r, error=TRUE}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(2022) %>%
elegir_como_se_estructura_gasto(generica = "5-20")
```
### Consultar
Una vez definidos los parámetros de la consulta, solo hace falta ejecutarla. Para ello, usamos la función `consultar()`. Esto nos devolverá la data requerida.
```{r}
# ¿Cuál fue la ejecución presupuestal por departamento en el gobierno nacional?
# Para el año 2022
iniciar_transparencia_economica() %>%
elegir_periodo_anual(2022) %>%
elegir_quien_gasta(nivel = "E") %>%
elegir_donde_se_gasta(departamento_meta = "todos") %>%
consultar()
```
La consulta no prosperará si alguna función de `elegir_*()` (con excepción de `elegir_periodo_anual()`) no cuenta con ningún parámetro como definido como `"todos"`.
```{r, error=TRUE}
iniciar_transparencia_economica() %>%
elegir_periodo_anual(2022) %>%
elegir_quien_gasta(nivel = "E") %>%
elegir_donde_se_gasta(departamento_meta = "01") %>%
consultar()
```
Se recomienda asignarle nombre a una consulta ejecutada para evitar posibles tediosas re-descargas, especialmente cuando la consulta usa parámetros con vectores más grandes.
```{r}
# ¿Cómo se ejecutó el gasto por genérica para el PP 0031 entre el 2015 y 2021?
mi_consulta <- iniciar_transparencia_economica() %>%
elegir_periodo_anual(2015:2021) %>%
elegir_en_que_se_gasta(categoria_presupuestal = "0031") %>%
elegir_como_se_estructura_gasto(generica = "todos") %>%
consultar()
mi_consulta
```
Una vez obtenida la consulta requerida, es posible tratar los datos obtenidos como cualquier otro dataframe en R. Por ejemplo, para calcular el porcentaje de presupuesto destinado a personal y obligaciones sociales por periodo anual.
```{r, warning=FALSE, message=FALSE}
library(dplyr)
mi_consulta %>%
group_by(periodo) %>%
mutate(porc_presupuesto = (pim/sum(pim)*100) %>% round(1)) %>%
ungroup() %>%
filter(desc_generica == "PERSONAL Y OBLIGACIONES SOCIALES")
```
También es posible usar los datos obtenidos directamente para un gráfico con `ggplot2`.
```{r, warning=FALSE, message=FALSE}
library(ggplot2)
mi_consulta %>%
ggplot(aes(periodo, pim, color = cod_generica)) +
geom_line() +
scale_y_continuous(labels = scales::label_dollar(prefix = "S/."))
```
Owner
- Name: Samuel Calderon
- Login: calderonsamuel
- Kind: user
- Location: Lima
- Website: www.samuelenrique.com
- Twitter: samucalse
- Repositories: 9
- Profile: https://github.com/calderonsamuel
Peruvian political scientist
GitHub Events
Total
- Watch event: 3
Last Year
- Watch event: 3
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 45
- Total pull requests: 4
- Average time to close issues: 24 days
- Average time to close pull requests: about 23 hours
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.49
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- calderonsamuel (25)
- lalgarcia (1)
Pull Request Authors
- calderonsamuel (2)
Top Labels
Issue Labels
enhancement (7)
bug (6)
documentation (3)
Pull Request Labels
Dependencies
DESCRIPTION
cran
- R6 * imports
- cli * imports
- dplyr * imports
- glue * imports
- httr2 * imports
- janitor * imports
- purrr * imports
- readr * imports
- rlang * imports
- rvest * imports
- stats * imports
- tibble * imports
- tidyr * imports
- testthat >= 3.0.0 suggests
.github/workflows/R-CMD-check.yaml
actions
- actions/checkout v2 composite
- r-lib/actions/check-r-package v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml
actions
- JamesIves/github-pages-deploy-action v4.4.1 composite
- actions/checkout v3 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/test-coverage.yaml
actions
- actions/checkout v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite