Como R es software libre, es posible crear librerías
library
según las funciones y demandas de la comunidad. En
este sentido, dichas librerías pueden ser tanto para funciones
transversales, como para trabajar con temas puntuales. Por ejemplo, en
este taller introduciremos algunas librerías útiles como
eph
, polAr
, PortalHacienda
y
DatosAbiertosCEP
, cada una con distintas funciones
específicas.
Las librerías, como se mencionó anteriormente, previo a cargarse
deben ser instaladas. Aquí hay dos opciones, utilizar la función
install.packages()
y mencionar la librería específica entre
comillas ''
o ""
. Por ejemplo:
install.packages('eph')
o a través de github por medio de
la librería devtools
, especificando el repositorio de
github.
eph
La librería eph
es una libería que facilita el uso de
las bases de datos de la Encuesta Permanente de Hogares de INDEC,
brindando funciones que facilitan su manipulación y procesamientos
básicos. Se puede consultar su funcionalidad en el siguiente documento
o en su sitio de
CRAN.
Una de sus principales funciones es get_microdata()
, la
cual nos permite importar las bases de datos directamente desde la
págian de INDEC, sin necesidad de descargarlas y leerlas desde R. La
funcion get_microdata()
tiene como argumentos las
especificaciones de las bases de datos, tale como año year
,
trimestre period
, si es la base individual o del hogar
type
, si es un grupo de variables específicas
vars
, entre otras.
Por ejemplo, si quisieramos cargar la base de datos de individuos del segundo trimestre del 2023 se procedería como:
library(eph)
df2t23 <- get_microdata(year=2023, trimester = 2, type = "individual")
head(df2t23)
## # A tibble: 6 × 177
## CODUSU ANO4 TRIMESTRE NRO_HOGAR COMPONENTE H15 REGION MAS_500 AGLOMERADO
## <chr> <int> <int> <int> <int> <int> <int> <chr> <int>
## 1 TQRMNOVR… 2023 2 1 1 1 1 S 33
## 2 TQRMNOVR… 2023 2 1 2 1 1 S 33
## 3 TQRMNOVR… 2023 2 1 3 0 1 S 33
## 4 TQRMNORX… 2023 2 1 1 1 1 S 33
## 5 TQRMNOUV… 2023 2 1 1 1 1 S 32
## 6 TQRMNOUV… 2023 2 1 2 1 1 S 32
## # ℹ 168 more variables: PONDERA <int>, CH03 <int>, CH04 <int>, CH05 <chr>,
## # CH06 <int>, CH07 <int>, CH08 <int>, CH09 <int>, CH10 <int>, CH11 <int>,
## # CH12 <int>, CH13 <int>, CH14 <chr>, CH15 <int>, CH15_COD <int>, CH16 <int>,
## # CH16_COD <int>, NIVEL_ED <int>, ESTADO <int>, CAT_OCUP <int>,
## # CAT_INAC <int>, IMPUTA <int>, PP02C1 <int>, PP02C2 <int>, PP02C3 <int>,
## # PP02C4 <int>, PP02C5 <int>, PP02C6 <int>, PP02C7 <int>, PP02C8 <int>,
## # PP02E <int>, PP02H <int>, PP02I <int>, PP03C <int>, PP03D <int>, …
Se puede descargar más de una base de datos a la vez, definiendo en
los distintos argumentos de la función más de un valor, a través de un
rango :
o de un vector c()
. Por ejemplo, si
quisieramos bajar las bases desde el año 2021 hasta el año 2023, del
primer y tercer trimestre, podemos proponer:
eph_21_23 <- get_microdata(year=2021:2023, trimester = c(1,3), type="individual")
eph_21_23
## # A tibble: 291,272 × 178
## CODUSU ANO4 TRIMESTRE NRO_HOGAR COMPONENTE H15 REGION MAS_500 AGLOMERADO
## <chr> <int> <int> <int> <int> <int> <int> <chr> <int>
## 1 TQRMNOP… 2021 1 1 1 1 43 S 2
## 2 TQRMNOP… 2021 1 1 1 1 43 S 2
## 3 TQRMNOP… 2021 1 1 1 1 43 S 2
## 4 TQRMNOP… 2021 1 1 2 1 43 S 2
## 5 TQRMNOP… 2021 1 1 3 1 43 S 2
## 6 TQRMNOP… 2021 1 1 4 1 43 S 2
## 7 TQRMNOP… 2021 1 1 5 1 43 S 2
## 8 TQRMNOP… 2021 1 1 1 1 43 S 2
## 9 TQRMNOP… 2021 1 1 2 1 43 S 2
## 10 TQRMNOP… 2021 1 1 1 1 43 S 2
## # ℹ 291,262 more rows
## # ℹ 169 more variables: PONDERA <int>, CH03 <int>, CH04 <int>, CH05 <chr>,
## # CH06 <int>, CH07 <int>, CH08 <int>, CH09 <int>, CH10 <int>, CH11 <int>,
## # CH12 <int>, CH13 <int>, CH14 <chr>, CH15 <int>, CH15_COD <int>, CH16 <int>,
## # CH16_COD <int>, NIVEL_ED <int>, ESTADO <int>, CAT_OCUP <int>,
## # CAT_INAC <int>, IMPUTA <int>, PP02C1 <int>, PP02C2 <int>, PP02C3 <int>,
## # PP02C4 <int>, PP02C5 <int>, PP02C6 <int>, PP02C7 <int>, PP02C8 <int>, …
En forma complementaria, también presenta funciones que permite
obtener datos complementarios de utilidad, como los valores de la
Canasta Básica Alimentaria y la Canasta Básica Total
get_poverty_lines()
, el total urbano de los distintos
aglomerados get_total_urbano()
.
eph
Si quisiéramos calcular algunas tasas de referencia del Mercado de Trabajo, podemos utilizar los elementos vistos en estos talleres para calcular las principales estadísitcas laborales de Argentina. Por ejemplo, podemos estimar la Tasa de Actividad y la Tasa de Desempleo de diversas formas.
La tasa de actividad se define como el porcentaje de personas que
trabajan o buscan trabajo respecto de la población total:
Activos / Población Total
, mientras que la tasa de
desempleo es la relación entre las personas que no trabajan pero buscan
trabajo respecto del total de la población económicamente activa:
Desempleados / Activos
. Por lo tanto, deberíamos: 1-
importar la base de datos y variables que necesitamos; 2- calcular las
variables de interés; 3- estimar las tasas necesarias
library(eph)
#Importo las variables de interés
df <- get_microdata(year = 2023, trimester = 3, type = "individual", vars = c("PONDERA", "ESTADO"))
#Creo los objetos "Activos", "Desempleados" y "Población Total"
ocupados <- sum(df[df$ESTADO == 1,]$PONDERA)
desocupados <- sum(df[df$ESTADO == 2,]$PONDERA)
activos <- ocupados + desocupados
pob_total <- sum(df$PONDERA)
tasa_actividad <- activos / pob_total * 100
tasa_actividad
## [1] 48.22818
tasa_desempleo <- desocupados / activos * 100
tasa_desempleo
## [1] 5.72603
Alternativamente, podemos usar la librería dplyr
para
utilizar su función filter
y simplicar la selección de los
casos.
library(dplyr)
#Importo las variables de interés
df <- get_microdata(year = 2023, trimester = 3, type = "individual", vars = c("PONDERA", "ESTADO"))
ocupados2 <- df %>% filter(ESTADO==1) %>% summarise(sum(PONDERA))
ocupados2
## # A tibble: 1 × 1
## `sum(PONDERA)`
## <int>
## 1 13396202
desocupados2 <- df %>% filter(ESTADO==2) %>% summarise(sum(PONDERA))
desocupados2
## # A tibble: 1 × 1
## `sum(PONDERA)`
## <int>
## 1 813661
activos2 <- ocupados2 + desocupados2
pob_total2 <- df %>% summarise(sum(PONDERA))
tasa_actividad2 <- activos2 / pob_total2 * 100
tasa_actividad2
## sum(PONDERA)
## 1 48.22818
tasa_desempleo2 <- desocupados2 / activos2 * 100
tasa_desempleo2
## sum(PONDERA)
## 1 5.72603
PortalHacienda
Desde el Ministerio de Económia se cuenta con un portal de datos económicos actualizados de gran utilidad: Portal de Datos Económicos. Allí, es posible descargar las series estadísticas en distintas frecuencias, con distintos formatos y actualización.
A través de la librería PortalHacienda
es posible buscar
las series que sea de interés, y descargarlas a partir de su código de
identificación específico. Para conocerla en profundidad se puede
consultar su página de
GitHub o su RDocumentation.
Retomando el caso de la Tasa de Desempleo, a través de esta librería
es posible buscar la tasa de desempleo, descargarla e utilizarla para su
análisis por medio de tablas o gráficos. El primer paso es buscar series
por medio de palabras claves. Para tal fin, la librería propone la
función Search_online()
, cuyo argumento es una cadena de
caracteres (entre ''
o ""
) de palabras de
nuestro interés. Por ejemplo, buscamos la palabra
"desempleo"
tal que:
library(PortalHacienda)
busqueda <- Search_online("desempleo")
## Downloading time-series database...
##
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 9%
|
|======= | 10%
|
|======= | 11%
|
|======== | 11%
|
|======== | 12%
|
|========= | 12%
|
|========= | 13%
|
|========== | 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%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 46%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 49%
|
|=================================== | 50%
|
|=================================== | 51%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 56%
|
|======================================== | 57%
|
|======================================== | 58%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 59%
|
|========================================== | 60%
|
|========================================== | 61%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 62%
|
|============================================ | 63%
|
|============================================ | 64%
|
|============================================= | 64%
|
|============================================= | 65%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 69%
|
|================================================= | 70%
|
|================================================= | 71%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 72%
|
|=================================================== | 73%
|
|=================================================== | 74%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|======================================================= | 79%
|
|========================================================= | 81%
|
|=========================================================== | 85%
|
|============================================================= | 87%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 89%
|
|=============================================================== | 90%
|
|=============================================================== | 91%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 92%
|
|================================================================= | 93%
|
|================================================================= | 94%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 96%
|
|==================================================================== | 97%
|
|==================================================================== | 98%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
busqueda
## # A tibble: 87 × 24
## catalogo_id dataset_id distribucion_id serie_id indice_tiempo_frecue…¹
## <chr> <dbl> <dbl> <chr> <chr>
## 1 sspm 186 186. 186.1_SEGURO_D… R/P1Y
## 2 sspm 186 186. 186.1_SEGURO_D… R/P1Y
## 3 sspm 186 186. 186.2_SEGURO_D… R/P3M
## 4 sspm 186 186. 186.2_SEGURO_D… R/P3M
## 5 sspm 186 186. 186.3_SEGURO_D… R/P1M
## 6 sspm 186 186. 186.3_SEGURO_D… R/P1M
## 7 sspm 187 187. 187.1_BENEFICI… R/P1Y
## 8 sspm 189 189. 189.1_ASIGNACI… R/P1M
## 9 sspm 189 189. 189.1_PRESTACI… R/P1M
## 10 sspm 45 45.1 45.1_ECTDTBB_0… R/P1Y
## # ℹ 77 more rows
## # ℹ abbreviated name: ¹indice_tiempo_frecuencia
## # ℹ 19 more variables: serie_titulo <chr>, serie_unidades <chr>,
## # serie_descripcion <chr>, distribucion_titulo <chr>,
## # distribucion_descripcion <chr>, distribucion_url_descarga <chr>,
## # dataset_responsable <chr>, dataset_fuente <chr>, dataset_titulo <chr>,
## # dataset_descripcion <chr>, dataset_tema <chr>, …
Aquí me devuelve un listado completo de todas las series que tienen
la palabra desempleo en su nombre. Así como se buscó dicho término, se
podría buscar "Tipo de Cambios"
, "IPC"
o
"Entre Rios"
y nos arrojará diversos resultados. Para verlo
con más claridad, se puede usar la opción View(busqueda)
,
el cual nos abrirá una ventana nueva con todos los resultados de la
búsqueda en forma más estructurada. Allí, deberíamos identificar el
serie_id
de la serie que nos interesa.
Otra forma de encontrar dicho serie_id
es en el excel
que se puede descargar del Portal de Datos
Económicos, y allí ver en la primer celda dicho código en gris
claro.
Para el caso de la Tasa de Desempleo Total de la EPH, el
serie_id
es "45.2_ECTDT_0_T_33"
. Una vez
identificado, podemos utilizar la función Get()
, donde el
argumento será dicho código. Por ejemplo:
desempleo <- Get("45.2_ECTDT_0_T_33")
## Downloading data series...
## Loaded 85 data points, from 2003-01-01 to 2024-01-01. Periodicity: quarterly
desempleo
## eph_continua_tasa_desempleo_total
## 2003-01-01 0.20400000
## 2003-04-01 0.17800000
## 2003-07-01 0.16146966
## 2003-10-01 0.14447167
## 2004-01-01 0.14276929
## 2004-04-01 0.14653478
## 2004-07-01 0.13131339
## 2004-10-01 0.12021879
## 2005-01-01 0.12918463
## 2005-04-01 0.11964515
## 2005-07-01 0.11121767
## 2005-10-01 0.10035495
## 2006-01-01 0.11308336
## 2006-04-01 0.10324910
## 2006-07-01 0.10094598
## 2006-10-01 0.08624367
## 2007-01-01 0.09689336
## 2007-04-01 0.08287784
## 2007-07-01 0.08100000
## 2007-10-01 0.07522467
## 2008-01-01 0.08310572
## 2008-04-01 0.07954060
## 2008-07-01 0.07774918
## 2008-10-01 0.07278622
## 2009-01-01 0.08361047
## 2009-04-01 0.08739179
## 2009-07-01 0.09087527
## 2009-10-01 0.08372178
## 2010-01-01 0.08300000
## 2010-04-01 0.07900000
## 2010-07-01 0.07500000
## 2010-10-01 0.07300000
## 2011-01-01 0.07400000
## 2011-04-01 0.07300000
## 2011-07-01 0.07200000
## 2011-10-01 0.06700000
## 2012-01-01 0.07100000
## 2012-04-01 0.07200000
## 2012-07-01 0.07600000
## 2012-10-01 0.06900000
## 2013-01-01 0.07900000
## 2013-04-01 0.07200000
## 2013-07-01 0.06800000
## 2013-10-01 0.06400000
## 2014-01-01 0.07100000
## 2014-04-01 0.07100000
## 2014-07-01 0.07500000
## 2014-10-01 0.06900000
## 2015-01-01 0.07100000
## 2015-04-01 0.06600000
## 2015-07-01 0.05900000
## 2015-10-01 NA
## 2016-01-01 NA
## 2016-04-01 0.09300000
## 2016-07-01 0.08500000
## 2016-10-01 0.07600000
## 2017-01-01 0.09200000
## 2017-04-01 0.08700000
## 2017-07-01 0.08300000
## 2017-10-01 0.07200000
## 2018-01-01 0.09100000
## 2018-04-01 0.09600000
## 2018-07-01 0.09000000
## 2018-10-01 0.09100000
## 2019-01-01 0.10100000
## 2019-04-01 0.10600000
## 2019-07-01 0.09700000
## 2019-10-01 0.08900000
## 2020-01-01 0.10400000
## 2020-04-01 0.13100000
## 2020-07-01 0.11700000
## 2020-10-01 0.10957932
## 2021-01-01 0.10200000
## 2021-04-01 0.09600903
## 2021-07-01 0.08200000
## 2021-10-01 0.07000000
## 2022-01-01 0.07000000
## 2022-04-01 0.06900000
## 2022-07-01 0.07100000
## 2022-10-01 0.06281804
## 2023-01-01 0.06874528
## 2023-04-01 0.06200000
## 2023-07-01 0.05726030
## 2023-10-01 0.05700000
## 2024-01-01 0.07700000
plot(desempleo)
Podríamos resumir todo este proceso anidando el mismo de la siguiente forma:
plot(Get("45.2_ECTDT_0_T_33"))
## Downloading data series...
## Loaded 85 data points, from 2003-01-01 to 2024-01-01. Periodicity: quarterly
La librería cuenta con más de 20.000 series disponibles, de gran utilidad y facilidad para procesarlas y analizarlas. Al realizar procesos repetitivos de consulta de las mismas, sistematizar las consultas, procesamiento y presentación permitiría facilitar enormemente el trabajo.
Por ejemplo, podemos bajar la serie nacional y la de Gran Paraná,
unirlas con la función merge()
, y luego graficarla en un
único renglón de código, el cual podemos ejecutar y publicar
habitualmente. Por ejemplo:
plot(merge(Get("45.2_ECTDT_0_T_33"), Get("45.2_ECTDTGP_0_T_45")))
## Downloading data series...
## Loaded 85 data points, from 2003-01-01 to 2024-01-01. Periodicity: quarterly
## Downloading data series...
## Loaded 83 data points, from 2003-07-01 to 2024-01-01. Periodicity: quarterly
Este gráfico se podría perfeccionar a través de las librerías
gráficas vista en el taller anterior, ggplot2
,
plotly
o alguna otra. Por ejemplo:
library(plotly)
library(PortalHacienda)
desempleo <- as.data.frame(merge(Get("45.2_ECTDT_0_T_33"), Get("45.2_ECTDTGP_0_T_45")))
## Downloading data series...
## Loaded 85 data points, from 2003-01-01 to 2024-01-01. Periodicity: quarterly
## Downloading data series...
## Loaded 83 data points, from 2003-07-01 to 2024-01-01. Periodicity: quarterly
desempleo <- na.omit(desempleo)
plot_ly(data= desempleo, x= ~rownames(desempleo), y=~eph_continua_tasa_desempleo_total, name = "Argentina" ,type="scatter", mode = "line")%>%
add_trace(y =~ eph_continua_tasa_desempleo_total_gran_parana, name= "Gran Parana", type="scatter", mode = "line")%>%
layout(title = "Tasa de desempleo nacional y de Gran Parana", xaxis = list(title = "Periodo"), yaxis = list(title = "Tasa de Desempleo"))%>%
config(na.exclue=T)
DatosAbiertosCEP
La librería DatosAbiertosCEP
tiene por objetivo colaborar
en el acceso y procesamiento de los datos puestos disposición por el
Centro de Estudios para la Producción XXI, en la página de Datos
Abiertos de la Secretaría de Industria y Desarrollo Productivo del
Ministerio de Economía.
Para instalar la misma y saber de que se trata pueden acceder a su página de GitHub. Sus principales funciones se refieren a buscar entre el listado de series temporales con sus códigos únicos, descargar las mismas, así como algunas funciones de deflaxión o indexación, y funciones específicas de diccionario y demás.
library(DatosAbiertosCEP)
DA_cruces_existentes()
## # A tibble: 136 × 8
## index Dato Universo Sector Jurisdiccion Genero Fecha_inicio Fecha_final
## <int> <chr> <chr> <chr> <chr> <chr> <date> <chr>
## 1 1 Percentil… Privado NO NO NO 2013-01-01 Ultimo dat…
## 2 2 Percentil… Total e… NO NO NO 2013-01-01 Ultimo dat…
## 3 3 Percentil… Público NO NO NO 2013-01-01 Ultimo dat…
## 4 4 Percentil… Total e… NO NO NO 2013-01-01 Ultimo dat…
## 5 5 Percentil… Privado NO NO SI 2013-01-01 Ultimo dat…
## 6 6 Percentil… Público NO NO SI 2013-01-01 Ultimo dat…
## 7 7 Percentil… Privado Letra NO SI 2013-01-01 Ultimo dat…
## 8 8 Percentil… Total e… Letra NO SI 2013-01-01 Ultimo dat…
## 9 9 Percentil… Total e… Letra NO SI 2013-01-01 Ultimo dat…
## 10 10 Percentil… Privado CLAE2 NO SI 2013-01-01 Ultimo dat…
## # ℹ 126 more rows
Para ver en una ventana aparte, se puede utilizar la expresión
View()
de la forma
View(DA_cruces_existentes())
.
Allí, en dicho listado puedo elegir la serie que me interesa. Por ejemplo, si me interesa la cantidad de trabajadores por cada provincia, clasificados según el CLNAE 2, podemos utilizar la serie 77. Para descargarla, podemos utilizar:
df <- descarga_DA(73)
head(df)
## # A tibble: 6 × 4
## fecha zona_prov letra puestos
## <date> <chr> <chr> <dbl>
## 1 2007-01-01 BUENOS AIRES A 76461
## 2 2007-01-01 BUENOS AIRES B 6736
## 3 2007-01-01 BUENOS AIRES C 454629
## 4 2007-01-01 BUENOS AIRES D 14252
## 5 2007-01-01 BUENOS AIRES E 13637
## 6 2007-01-01 BUENOS AIRES F 104358
Si quisiera trabajar solo con Entre Ríos, podría filtrarla por esa fecha y luego graficar según cada categoría
library(dplyr)
df %>%
filter(zona_prov == "ENTRE RIOS") %>%
ggplot(aes(fecha, puestos, group=letra))+geom_line(aes(color=letra))
Otro ejemplo podría ser realizar con plotly
un gráfico
interactivo de la cantidad de empleados del sector industrial de Entre
Ríos, de la siguiente forma:
library(plotly)
df %>%
filter(zona_prov == "ENTRE RIOS") %>%
filter(letra == "C") %>%
plot_ly(x =~ fecha, y =~ puestos, type = "scatter", mode = "lines")
polAr
y el polArverseOtra librería de interés es la librería polAr
, así como
otras librerías relacionadas que se encuentran actualmente en
desarrollo, como geoAr
, opinAr
y otras, las
cuales pueden consultarse en
este espacio.