UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

MÉTODOS PARA EL ANÁLISIS ECONÓMICO


LABORATORIO 1. SEGUNDA PARTE


DOCENTE:

MSF. CARLOS ADEMIR PÉREZ ALAS.

INTEGRANTES:

ARITA POLANCO, BRIAN GUADALUPE.      AP18007.

MEJÍA HERRERA, NORMAN JAVIER.       MH18013.

RAMÍREZ URQUIZA, ALEJANDRA EUNICE.      RU18002.

GRUPO:

3

CIUDAD UNIVERSITARIA, JUEVES 9 DE SEPTIEMBRE DE 2021.

1. Uso de librería “dplyr”

1.1. Uso de “Select”

Ejemplo 1:

Usando la base de datos de comercio exterior para El Salvador creada en la sesión anterior, seleccione las columnas de “pais”, “sac”,“anio”,“mes”,“valor_cif”.

#Cargamos el dataframe data_comercio_exterior
load("C:/Users/EunicePC/Downloads/data_comercio_exterior_actualizada_unida.RData")

#Cargamos el paquete "dplyr"
library(dplyr)
library(kableExtra) #Sólo es para formato de las tablas de estos apuntes
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

data_comercio_exterior_update_unida %>%
  select("pais", "sac","anio","mes","valor_cif") %>% 
  head() %>% kable(caption = "Ejemplo 1") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 1
pais sac anio mes valor_cif
Afganistan 0806200000 2018 6 6448.43
Afganistan 0806200000 2018 6 6448.43
Afganistan 6104220000 2018 10 3153.37
Afganistan 6104220000 2018 10 3153.37
Afganistan 6104620000 2018 10 946.01
Afganistan 6104620000 2018 10 946.01

1.2 Uso de “Filter”

Ejemplo 1:

Seleccione todas las transacciones de exportación del año 2021, con Alemania o Canada, que sean superiores a los 300,000 US$

library(dplyr)
data_comercio_exterior_update_unida %>%
  select("pais", "sac","anio","mes","valor_fob") %>%
  filter(anio=="2021", pais %in% c("Alemania","Canada"),valor_fob>300000) %>% 
  head() %>% kable(caption = "Ejemplo 1") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 1
pais sac anio mes valor_fob
Alemania 0901113000 2021 1 798200.6
Alemania 3808930000 2021 1 3475317.1
Alemania 0901113000 2021 2 1368511.7
Alemania 3808930000 2021 2 3476212.9
Alemania 0901113000 2021 3 2092411.3
Alemania 3808930000 2021 3 1740546.3
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

Ejemplo 2:

Seleccione todas las transacciones, exportación e importación, para el último trimestre de cada año disponible en el dataframe, que se han realizado con Irlanda.

data_comercio_exterior_update_unida %>% 
  filter(pais=="Irlanda",mes %in% 10:12) %>% 
  head() %>% kable(caption = "Ejemplo 2") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 2
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Irlanda 0402212200 2018 10 78959.61 22330.00 0 0
Irlanda 0402212200 2018 10 78959.61 22330.00 0 0
Irlanda 1901200000 2018 10 131.16 0.33 0 0
Irlanda 1901200000 2018 10 131.16 0.33 0 0
Irlanda 1901902000 2018 10 112750.00 50740.00 0 0
Irlanda 1901902000 2018 10 112750.00 50740.00 0 0
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

Ejemplo 3:

Seleccione todas las transacciones, exportación e importación, para el último trimestre de cada año disponible en el dataframe, y que excluyan el comercio con Corea del Sur, México y Japón.

library(purrr) #librería necesaria para la función personalizada `%not_in%`
`%not_in%` <- purrr::negate(`%in%`) #esta función permite excluir los elementos que se incluyan en un vector
data_comercio_exterior_update_unida %>% 
  filter(mes %in% 10:12,
         pais %not_in% c("Corea del Sur","Mexico","Japon")) %>% 
  head() %>% kable(caption = "Ejemplo 3") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 3
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0
Afganistan 6104620000 2018 10 946.01 722.28 0 0
Afganistan 6104620000 2018 10 946.01 722.28 0 0
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

1.3 Uso de “Mutate”

Ejemplo 1:

Calcule el saldo de la balanza comercial para todas las transacciones, disponibles en la base de comercio exterior.

data_comercio_exterior_update_unida %>% 
  mutate(saldo_bc=valor_fob-valor_cif) %>% 
  select("pais","sac","anio","mes","saldo_bc") %>% 
  head() %>% kable(caption = "Ejemplo 1") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 1
pais sac anio mes saldo_bc
Afganistan 0806200000 2018 6 -6448.43
Afganistan 0806200000 2018 6 -6448.43
Afganistan 6104220000 2018 10 -3153.37
Afganistan 6104220000 2018 10 -3153.37
Afganistan 6104620000 2018 10 -946.01
Afganistan 6104620000 2018 10 -946.01
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

Ejemplo 2:

Calcule las exportaciones y las importaciones como porcentaje del comercio total, en cada transacción disponible en la base de comercio exterior, muestre sólo aquellas partidas que registren exportaciones.

options(scipen = 99999)
data_comercio_exterior_update_unida %>% 
  mutate(Xpt=round(valor_fob/(valor_cif+valor_fob)*100,2),
         Mpt=round(valor_cif/(valor_cif+valor_fob)*100,2)) %>% 
  select("pais","sac","anio","mes","Xpt","Mpt") %>% filter(Xpt>0) %>% 
  head() %>% kable(caption = "Ejemplo 2") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 2
pais sac anio mes Xpt Mpt
Afganistan 3004909100 2019 9 100 0
Afganistan 3004909100 2019 9 100 0
Afganistan 7009920000 2021 5 100 0
Afganistan 8302419000 2021 5 100 0
Afganistan 8306290000 2021 5 100 0
Afganistan 9401710000 2021 5 100 0
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

1.4 Uso de “Arrange”

Ejemplo:

Ordenar los resultados del Ejemplo 2 de mutate, mostrando primero los resultados más recientes.

options(scipen = 99999)
data_comercio_exterior_update_unida %>% 
  mutate(Xpt=round(valor_fob/(valor_cif+valor_fob)*100,2),
         Mpt=round(valor_cif/(valor_cif+valor_fob)*100,2)) %>% 
  select("pais","sac","anio","mes","Xpt","Mpt") %>% 
  filter(Xpt>0) %>%
  arrange(desc(anio),desc(mes)) %>% 
  head() %>% kable(caption = "Ejemplo") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo
pais sac anio mes Xpt Mpt
Alemania 0409000000 2021 7 100.00 0.00
Alemania 0901113000 2021 7 100.00 0.00
Alemania 1604149000 2021 7 100.00 0.00
Alemania 3808930000 2021 7 99.78 0.22
Alemania 3919101000 2021 7 0.02 99.98
Alemania 3923309900 2021 7 0.06 99.94
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

1.5 Uso de “Summarise”

Ejemplo 1:

Obtenga los totales anuales de importaciones y exportaciones.

data_comercio_exterior_update_unida %>% 
  group_by(anio) %>%
  summarise(`Total Exportaciones MM US$`=sum(valor_fob)/1e6,
            `Total Importaciones MM US$`=sum(valor_cif)/1e6) %>% 
  head() %>% kable(caption = "Ejemplo 1") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 1
anio Total Exportaciones MM US$ Total Importaciones MM US$
2018 11810.822 22928.645
2019 11809.460 23207.671
2020 10088.021 20653.157
2021 3846.314 8354.539
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

Ejemplo 2:

Obtenga los totales anuales de importaciones y exportaciones, que se realizan por país.

data_comercio_exterior_update_unida %>% 
  group_by(pais,anio) %>%
  summarise(`Total Exportaciones`=sum(valor_fob),
            `Total Importaciones`=sum(valor_cif)) %>% 
  head() %>% kable(caption = "Ejemplo 2") %>% 
  kable_styling(bootstrap_options = Form.Basic)
Ejemplo 2
pais anio Total Exportaciones Total Importaciones
Afganistan 2018 0.00 47146.22
Afganistan 2019 764.26 26227.54
Afganistan 2020 0.00 10853.48
Afganistan 2021 37873.33 0.00
Albania 2018 0.00 36614.72
Albania 2019 102785.00 51320.32
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2. Funciones

source(file = "C:/Users/EunicePC/Downloads/funciones_comercio_exterior.R",echo = TRUE,max.deparse.length = 100,encoding = "utf-8")

options(scipen = 999)

library(dplyr)

library(readxl)

library(stringr)

load(“C:/Users/EunicePC/Downloads/data_comercio_exterior_actualizada_unida.RData”)

nombre_archivo <- “C:/Users/EunicePC/Downloads/nombres_iso_paises.xlsx”

nombres_iso_paises <- read_excel(nombre_archivo)

data_estan <- data_comercio_exterior_update_unida %>% + left_join(nombres_iso_paises, by = c( …. [TRUNCATED]

herramientas_mostrar_paises <- function() { + paises <- nombres_iso_paises %>% select(nom_pais …. [TRUNCATED]

herramientas_mostrar_regiones <- function() { + nombres_iso_paises %>% group_by(region, cod_re …. [TRUNCATED]

herramientas_mostrar_paises_en_tabla <- function() { + data_estan %>% group_by(pais, anio) %>% …. [TRUNCATED]

indicadores_IVCR_capitulo <- function(codigo_pais, + capitulo, anio) { + codigo_pais <- e …. [TRUNCATED]

indicadores_IVCR_partida <- function(codigo_pais, + partida, anio) { + codigo_pais <- enq …. [TRUNCATED]

indicadores_Balassa_capitulo <- function(codigo_pais, + capitulo, anio, normalizado = TRUE) { …. [TRUNCATED]

indicadores_Balassa_partida <- function(codigo_pais, + partida, anio, normalizado = TRUE) { + …. [TRUNCATED]

indicadores_IHH_Herfindahl_Hirschmann_anual_texto <- function(codigo_pais, + anio, normalizad …. [TRUNCATED]

indicadores_IHH_Herfindahl_Hirschmann_anual <- function(codigo_pais, + anio, normalizado = TR …. [TRUNCATED]

2.1 Herramientas de Consulta de Países

library(kableExtra)
herramientas_mostrar_paises() %>% head() %>% kable() %>%
kable_styling(bootstrap_options = Form.Basic)
nom_pais_esp codigo_pais region cod_region region_intermedia cod_region_intermedia
Afganistan 4 Asia 142 NA NA
Albania 8 Europa 150 NA NA
Alemania 276 Europa 150 NA NA
Andorra 20 Europa 150 NA NA
Angola 24 África 2 África Central 17
Anguila (R.U.) 660 Américas 19 Caribe 29
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.2 Herramientas de Consulta de Regiones

library(kableExtra)
herramientas_mostrar_regiones() %>% head() %>% kable() %>% 
kable_styling(bootstrap_options = Form.Basic)
region cod_region region_intermedia cod_region_intermedia # de Paises incluidos
África 2 África Central 17 8
África 2 Africa Del Sur 18 5
África 2 África Occidental 11 16
África 2 África Oriental 14 17
África 2 NA NA 6
Américas 19 Caribe 29 26
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.3 Herramientas de Consulta de Paises con transacciones en la tabla

library(kableExtra)
herramientas_mostrar_paises_en_tabla() %>% head() %>% kable() %>%  
kable_styling(bootstrap_options = Form.Basic)
pais anio # Transacciones
Afganistan 2018 14
Afganistan 2019 20
Afganistan 2020 58
Afganistan 2021 6
Albania 2018 54
Albania 2019 92
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.4 Uso de Indicador de Ventaja Comparativa Revelada

2.4.1 Ejemplo 1

Resultados_IVCR<-data.frame("años"= 2018:2021,
                            "IVCR"= sapply(X= 2018:2021,FUN = indicadores_IVCR_capitulo,codigo_pais=156,capitulo="05"))
Resultados_IVCR %>% kable(align = "l") %>%
kable_styling(bootstrap_options = Form.Basic)
años IVCR
2018 -0.0001665
2019 -0.0000776
2020 0.0000000
2021 0.0000000
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.4.2 Ejemplo 2

Resultados_IVCR_sac<-data.frame("años"=2018:2021,
                            "IVCR"=sapply(X=2018:2021,FUN = indicadores_IVCR_partida,codigo_pais=156,partida="9801002000"))
Resultados_IVCR_sac %>% kable(align = "l")  %>%
kable_styling(bootstrap_options = Form.Basic)
años IVCR
2018 -0.8993757
2019 -0.9393959
2020 -0.9003909
2021 -0.9856122
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.5 Uso de Indicador de Balassa

2.5.1 Ejemplo 1

Resultados_Balassa<-data.frame("años"=2018:2021,
                            "IB"=sapply(X=2018:2021,FUN = indicadores_Balassa_capitulo,codigo_pais=156,capitulo="83"))
Resultados_Balassa %>% kable(align = "l")  %>%
kable_styling(bootstrap_options = Form.Basic)
años IB
2018 -0.4827964
2019 0.0548256
2020 -0.9787132
2021 -0.9965138
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.5.2 Ejemplo 2

Resultados_IB_sac<-data.frame("años"=2018:2021,
                            "IB"=sapply(X=2018:2021,
                                          FUN = indicadores_Balassa_partida,
                                          codigo_pais=156,
                                          partida=" 9801002000",
                                          normalizado=TRUE))
Resultados_IB_sac %>% kable(align = "l")  %>%
kable_styling(bootstrap_options = Form.Basic)
años IB
2018 0.5214943
2019 0.5215363
2020 0.5765129
2021 0.8141919
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.6 Uso de Indicador de Herfindahl Hirschmann anual

2.6.1 Ejemplo 1: Uso de Indicador de Herfindahl Hirschmann anual

Resultados_IHH<-data.frame("años"=2018:2021,"IHH"=sapply(X = 2018:2021,
       FUN = indicadores_IHH_Herfindahl_Hirschmann_anual,codigo_pais=156,normalizado=TRUE))
Resultados_IHH %>% kable(align = "l",digits = 6)  %>%
kable_styling(bootstrap_options = Form.Basic)
años IHH
2018 0.102577
2019 0.120125
2020 0.120888
2021 0.344276
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

2.6.2 Ejemplo 2: Uso de Indicador de Herfindahl Hirschmann anual

Resultados_IHH_texto<-data.frame("años"=2018:2021,"IHH"=sapply(X = 2018:2021,
       FUN = indicadores_IHH_Herfindahl_Hirschmann_anual_texto,codigo_pais=156,normalizado=TRUE))
Resultados_IHH_texto %>% kable(align = "l",digits = 6)  %>%
kable_styling(bootstrap_options = Form.Basic)
años IHH
2018 -0.002133
2019 -0.002418
2020 -0.003568
2021 -0.010524
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")

3. Función personalizada para Ranking Anual

library(dplyr)
library(kableExtra)

archivo_excel <- "C:/Users/EunicePC/Downloads/nombres_iso_paises.xlsx"

nombre_iso_ran <- read_excel(nombre_archivo)

funcion_personalizada<-function(k, anios_ranking)
{  data_comercio_exterior_update_unida %>% 
    left_join(nombre_iso_ran, by = c("pais"= "nom_pais_esp")) %>% 
      filter(anio %in% anios_ranking) -> data_ranking
  data_ranking %>%
    group_by(anio, iso_3) %>%
    summarise(total = sum(valor_fob)) %>%
    mutate(percent = round(prop.table(total) * 100, 2)) %>%
    slice_max(n = k, order_by = total) %>%
    as.data.frame() %>%
    group_by(anio) %>%
    mutate(rank = row_number(), data = paste(iso_3, "|", percent, sep = "")) %>%
    select(anio, data, rank) %>%
    as.data.frame() -> insumo_reporte
  insumo_reporte %>%
     tidyr::pivot_wider(names_from=rank,values_from=data) -> tabla_ranking
  tabla_ranking %>% 
  kable(caption = paste("Top", k ,"de Exportaciones periodo",
                          min(anios_ranking), "-", max(anios_ranking))) %>%
    add_footnote(label="Elaboracion propia con base en datos del BCR") %>%
  kable_styling(bootstrap_options = Form.Basic)
}

3.1 Comprobando función

library(dplyr)
library(kableExtra)
Form.Basic <- c("striped", "bordered", "hover", "condensed", "responsive")
funcion_personalizada(k = 8, anios_ranking = 2018:2021) 
Top 8 de Exportaciones periodo 2018 - 2021
anio 1 2 3 4 5 6 7 8
2018 USA|44.07 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39 MEX|2.44 PAN|2.09 DOM|1.65
2019 USA|42.03 GTM|15.92 HND|15.9 NIC|6.66 CRI|4.46 MEX|2.54 PAN|2.03 DOM|1.75
2020 USA|39.18 GTM|16.89 HND|15.44 NIC|7.26 CRI|4.65 MEX|2.46 PAN|1.89 DOM|1.78
2021 USA|40.59 GTM|16.98 HND|15.82 NIC|6.99 CRI|4.04 MEX|2.15 KOR|1.98 PAN|1.9
a Elaboracion propia con base en datos del BCR