1. Compile la información disponible en la “Base de Datos de Comercio Exterior” del BCR, para los años 2018-2020. Y genera una tabla tal como se mostró en las clases (aún no incluya los nombres ISO de los países). Muestre un head de 10 casos.
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
setwd("C:/Users/meybelin alemán/Desktop/Metodos/importaciones_2018_2020")

archivosM_importar <- list.files()
lista_M <- lapply(archivosM_importar,
                  FUN = read_delim, delim = "|",
                  col_names = c("pais",
                               "sac",
                               "anio",
                               "mes",
                               "valor_cif",
                               "kilogramos"),
                  col_types = cols(pais = "c",
                                   anio = "d",
                                   mes = "d",
                                   valor_cif = "d",
                                   kilogramos = "d"), 
                  skip = 1)
# "c" <- letras
# "d" <- números enteros
importaciones_mensuales_2018_2020<-bind_rows(lista_M)

# La función lapply se usa comúnmente para realizar operaciones repetitivas. En este caso  se utiliza para generar un bucle que lea cada archivo con read_delim(). read_delim() se usa para leer cada archivo delimitado por "|". Se especifican los nombres de las columnas y los tipos de datos utilizando col_names y col_types. También se salta la primera fila (encabezados) con skip = 1. y se almacenen los resultados en una lista llamada lista_M


# La función bind_rows() se utiliza para combinar o unir múltiples data frames en uno solo, apilando las filas de los data frames uno debajo del otro, realizando una concatenación vertical de los datos.

# Formato HTML 
importaciones_mensuales_2018_2020 %>% 
  head() %>% kable(caption ="El Salvador: Base de Importaciones 2018-2020",
                   align = "c") %>% 
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>% 
  kable_styling()
El Salvador: Base de Importaciones 2018-2020
pais sac anio mes valor_cif kilogramos
Canada 0511100000 2023 3 14262.90 36.00
Canada 0701900000 2023 2 19642.76 22000.00
Canada 0701900000 2023 3 19690.00 22000.00
Canada 0701900000 2023 4 19910.00 22000.00
Canada 0701900000 2023 5 20130.00 22000.00
Canada 0712209000 2023 2 2488.68 746.03
* Elaboración propia con base en datos del BCR

Crear tabla exportaciones

library(readr)
setwd("C:/Users/meybelin alemán/Desktop/Metodos/para exportaciones")

archivosX_importar <- list.files()
lista_X <- lapply(archivosX_importar,
                  FUN = read_delim, delim = "|",
                  col_names = c("pais",
                               "sac",
                               "anio",
                               "mes",
                               "valor_fob",
                               "kilogramos"),
                  col_types = cols(pais = "c",
                                   anio = "d",
                                   mes = "d",
                                   valor_fob = "d",
                                   kilogramos = "d"), 
                  skip = 1)

exportaciones_mensuales_2018_2020<-bind_rows(lista_X)

# Formato HTML 
exportaciones_mensuales_2018_2020 %>% 
  head() %>% kable(caption ="El Salvador: Base de Exportaciones 2018-2020",
                   align = "c") %>% 
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>% 
  kable_styling()
El Salvador: Base de Exportaciones 2018-2020
pais sac anio mes valor_fob kilogramos
Canada 0106900000 2018 2 4667.2 15.0
Canada 0106900000 2018 3 4237.1 14.0
Canada 0106900000 2018 4 3918.0 13.5
Canada 0106900000 2018 5 3155.4 10.0
Canada 0106900000 2018 6 3097.4 9.0
Canada 0305720000 2018 2 2702.3 280.0
* Elaboración propia con base en datos del BCR

Creacion de tabla de Comercio Exterior

library(tidyr)
comercio_exterior_2018_2020 <-importaciones_mensuales_2018_2020 %>% full_join(exportaciones_mensuales_2018_2020,
            by = c("pais", "sac", "anio", "mes"),
            suffix = c("_importaciones", "_exportaciones")) 
# suffix nos ayuda a diferenciar variables con el mismo nombre.

# Construcción de la tabla sustituyendo valores NA
comercio_exterior_2018_2020 %>%
  replace_na(
    list(
      valor_cif = 0,
      valor_fob = 0,
      kilogramos_importaciones = 0,
      kilogramos_exportaciones = 0)) %>% 
  arrange(pais, anio, mes, sac) -> comercio_exterior_2018_2020

#Personalización 
data_comercio_exterior_2018_2020 <-comercio_exterior_2018_2020 %>%
  head(10) %>% 
  kable(caption = "Base de Comercio Exterior 2018 - 2020",
        align = "c") %>%
  add_footnote( label = "Elaboración propia con base en datos del BCR",
                notation = "symbol") %>% 
  kable_styling()

data_comercio_exterior_2018_2020
Base de Comercio Exterior 2018 - 2020
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0
Afganistan 6104620000 2018 10 946.01 722.28 0 0
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0
Afganistan 6405900000 2018 10 2260.03 1725.55 0 0
Afganistan 8206000000 2018 10 6.56 5.02 0 0
Afganistan 6404110000 2019 2 7752.13 6748.03 0 0
Afganistan 6405100000 2019 2 508.03 442.24 0 0
Afganistan 6405900000 2019 2 12.45 10.85 0 0
* Elaboración propia con base en datos del BCR
save(data_comercio_exterior_2018_2020,file = "C:/Users/meybelin alemán/Desktop/Metodos/data_comercio_exterior_2018_2020.RData")
load("C:/Users/meybelin alemán/Desktop/Metodos/data_comercio_exterior_2018_2020.RData")
  1. Realice la actualización de la tabla anterior con toda la información disponible para 2023.
library(dplyr)
library(tidyr)
library(kableExtra)
setwd("C:/Users/meybelin alemán/Desktop/Metodos/importaciones_2018_2020")

#Importación de archivos
archivosM_importar <- list.files()
lista_M <- lapply(archivosM_importar,
                  FUN = read_delim, delim = "|",
                  col_names = c("pais",
                               "sac",
                               "anio",
                               "mes",
                               "valor_cif",
                               "kilogramos"),
                  col_types = cols(pais = "c",
                                   anio = "d",
                                   mes = "d",
                                   valor_cif = "d",
                                   kilogramos = "d"), 
                  skip = 1)
#Ensamblar los archivos en un sólo dataframe
data_importaciones_update <- bind_rows(lista_M)
#Update de las exportaciones hasta 2023
setwd("C:/Users/meybelin alemán/Desktop/Metodos/para exportaciones")

#Importación de archivos

archivosX_importar <- list.files()
lista_X <- lapply(archivosX_importar,
                  FUN = read_delim, delim = "|",
                  col_names = c("pais",
                               "sac",
                               "anio",
                               "mes",
                               "valor_fob",
                               "kilogramos"),
                  col_types = cols(pais = "c",
                                   anio = "d",
                                   mes = "d",
                                   valor_fob = "d",
                                   kilogramos = "d"), 
                  skip = 1)
#Ensamblar los archivos en un sólo dataframe
data_exportaciones_update <- bind_rows(lista_X)
#Concatenar las tablas
data_importaciones_update %>% full_join(
  data_exportaciones_update,
  by = c("pais", "sac", "anio", "mes"),
  suffix = c("_importaciones", "_exportaciones")
) -> data_comercio_exterior_update

#Sustitur los Valores Nulos "NA" y guardar en el mismo objeto

data_comercio_exterior_update %>%
  replace_na(
    list(
      valor_cif = 0,
      valor_fob = 0,
      kilogramos_importaciones = 0,
      kilogramos_exportaciones = 0 ))%>%
  arrange(pais, anio, mes, sac) -> data_comercio_exterior_update

# Unir la tabla de comercio exterior y su actualización

data_comercio_exterior_2018_2023 <-
comercio_exterior_2018_2020 %>% bind_rows(data_comercio_exterior_update) %>%  arrange(pais, anio, mes, sac)

# Guardar antes de personalizar 
save(data_comercio_exterior_2018_2023, file = "C:/Users/meybelin alemán/Desktop/Metodos/data_comercio_exterior_2018_2023.Rdata")

# Mostrar tabla 
data_comercio_exterior_2018_2023 %>% head(10) %>%
  kable(caption = "Base de Comercio Exterior 2018-2023",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR", notation = "symbol") %>%  kable_styling()
Base de Comercio Exterior 2018-2023
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0
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
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0
* Elaboración propia con base en datos del BCR
  1. Agregue la información estandarizada de los países (nombres iso de los países y regiones, etc, tal como se vio en clases). Muestre un head de 10 casos.
library(dplyr)
library(readxl)
library(readr)
library(tidyr)

# Cargar base de datos de comercio exterior 
load("C:/Users/meybelin alemán/Desktop/Metodos/data_comercio_exterior_2018_2023.RData")


master_paises_iso <- read_excel("C:/Users/meybelin alemán/Desktop/Metodos/master_paises_iso.xlsx")
## New names:
## • `codigo_pais` -> `codigo_pais...5`
## • `codigo_pais` -> `codigo_pais...6`
## • `` -> `...13`
# Unión de ambas bases de datos 
data_comercio_exterior_2018_2023 %>%
left_join(master_paises_iso,
  by = c("pais" = "nom_pais_esp")) ->
info_estandar_CE_2018_2023


# Guardar antes de personalizar 
save(info_estandar_CE_2018_2023, file ="C:/Users/meybelin alemán/Desktop/Metodos/info_estandar_CE_2018_2023.Rdata")

# Mostrar tabla con head 10 casos 
info_estandar_CE_2018_2023 %>% head(10) %>%
  kable(caption = "Base de Comercio Exterior 2018-2023 estandarizada",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR", notation = "symbol") %>%  kable_styling()
Base de Comercio Exterior 2018-2023 estandarizada
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones nom_pais_ingles iso_2 iso_3 codigo_pais…5 codigo_pais…6 region cod_region sub_region cod_sub_region region_intermedia cod_region_intermedia …13
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6104620000 2018 10 946.01 722.28 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6104620000 2018 10 946.01 722.28 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA Asia 142
* Elaboración propia con base en datos del BCR
  1. Obtenga un ranking, anual, de los 5 principales socios comerciales de El Salvador, para el periodo 2018-2022. Presente sus resultados en el siguiente formato:
# Selección de años (filtro)

anios_ranking<-2018:2022
info_estandar_CE_2018_2023 %>% 
  filter(anio %in% anios_ranking) -> data_ranking

# Cálculo del ranking 

data_ranking %>% 
  group_by(anio,iso_3) %>% 
  summarise(total=sum(valor_fob)) %>% mutate(percent=round(prop.table(total)*100,2)) %>% 
  slice_max(n = 5,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
## `summarise()` has grouped output by 'anio'. You can override using the
## `.groups` argument.
print(insumo_reporte)
##    anio      data rank
## 1  2018  NA|47.09    1
## 2  2018 HND|15.34    2
## 3  2018 GTM|14.36    3
## 4  2018  NIC|6.87    4
## 5  2018  CRI|4.39    5
## 6  2019  NA|44.41    1
## 7  2019 GTM|15.92    2
## 8  2019  HND|15.9    3
## 9  2019  NIC|6.66    4
## 10 2019  CRI|4.46    5
## 11 2020  NA|43.91    1
## 12 2020 GTM|16.42    2
## 13 2020 HND|15.56    3
## 14 2020   NIC|7.1    4
## 15 2020  CRI|4.49    5
## 16 2021  NA|43.83    1
## 17 2021 GTM|16.78    2
## 18 2021 HND|16.49    3
## 19 2021   NIC|7.2    4
## 20 2021  CRI|4.11    5
## 21 2022  NA|41.17    1
## 22 2022 GTM|17.05    2
## 23 2022 HND|16.65    3
## 24 2022  NIC|6.98    4
## 25 2022  CRI|4.27    5

Tabla en formato “RAW”

library(tidyr)
insumo_reporte %>% 
pivot_wider(names_from = rank,values_from = data)->mi_tabla
print(mi_tabla)
## # A tibble: 5 × 6
##    anio `1`      `2`       `3`       `4`      `5`     
##   <dbl> <chr>    <chr>     <chr>     <chr>    <chr>   
## 1  2018 NA|47.09 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39
## 2  2019 NA|44.41 GTM|15.92 HND|15.9  NIC|6.66 CRI|4.46
## 3  2020 NA|43.91 GTM|16.42 HND|15.56 NIC|7.1  CRI|4.49
## 4  2021 NA|43.83 GTM|16.78 HND|16.49 NIC|7.2  CRI|4.11
## 5  2022 NA|41.17 GTM|17.05 HND|16.65 NIC|6.98 CRI|4.27

Tabla en Formato Requerido

library(kableExtra)
mi_tabla %>%
  kable(caption = paste("Top",5,"Socios comerciales.",
    min(anios_ranking),"-",max(anios_ranking))) %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR")
Top 5 Socios comerciales. 2018 - 2022
anio 1 2 3 4 5
2018 NA|47.09 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39
2019 NA|44.41 GTM|15.92 HND|15.9 NIC|6.66 CRI|4.46
2020 NA|43.91 GTM|16.42 HND|15.56 NIC|7.1 CRI|4.49
2021 NA|43.83 GTM|16.78 HND|16.49 NIC|7.2 CRI|4.11
2022 NA|41.17 GTM|17.05 HND|16.65 NIC|6.98 CRI|4.27
a Elaboración propia con base en datos del BCR