1 Ejercicio

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.

1.1 Creación Tabla de Importaciones

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/User/Desktop/tarea 5/tarea_metodos/comercio_importaciones")
nombres_archivos_importar<-list.files() 
#Leer los archivos del directorio de trabajo
lista_importaciones<-lapply(nombres_archivos_importar,
                            FUN=read_delim,"|",col_names=c("pais","sac","anio","mes","valor_cif",
                                                         "kilogramos"),
                            col_types=cols(pais="c",
                                           sac="c",
                                           anio="d",
                                           mes="d",
                                           valor_cif="d",
                                           kilogramos="d"),
                            skip=1)
importaciones_mensuales_2018_2020<-bind_rows(lista_importaciones) 
#ensamblar las tablas en un solo data frame
importaciones_mensuales_2018_2020 %>% head() %>% kable(caption="Base de datos de importaciones 2018 - 2020", align="c") %>% 
  add_footnote(label="Elaboración propia con base de datos del BCR",
               notation="symbol") %>% kable_styling()
Base de datos de importaciones 2018 - 2020
pais sac anio mes valor_cif kilogramos
Canada 0404900000 2018 2 68040.00 18810.00
Canada 0404900000 2018 3 92725.74 25528.60
Canada 0404900000 2018 4 92546.45 25525.00
Canada 0404900000 2018 6 91531.00 25525.00
Canada 0405100000 2018 6 26.56 20.00
Canada 0511100000 2018 1 16365.04 23.65
* Elaboración propia con base de datos del BCR

1.2 Creación Tabla de Exportaciones

library(readr)
library(dplyr)
library(kableExtra)
setwd("C:/Users/User/Desktop/tarea 5/tarea_metodos/comercio_exportaciones")
nombres_archivos_exporta<-list.files() 
#Leer los archivos del directorio de trabajo
lista_exportaciones<-lapply(nombres_archivos_exporta,
                            FUN=read_delim,"|",col_names=c("pais","sac","anio","mes","valor_fob",
                                                         "kilogramos"),
                            col_types=cols(pais="c",
                                           sac="c",
                                           anio="d",
                                           mes="d",
                                           valor_fob="d",
                                           kilogramos="d"),
                            skip=1)
exportaciones_mensuales_2018_2020<-bind_rows(lista_exportaciones) #ensamblar las tablas en un solo data frame
exportaciones_mensuales_2018_2020 %>% head() %>% kable(caption="Base de datos de exportaciones 2018 - 2020", align="c") %>% 
  add_footnote(label="Elaboración propia con base de datos del BCR",
               notation="symbol") %>% kable_styling()
Base de datos 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 de datos del BCR

1.3 Creación de Tabla de Comercio Exterior

library(dplyr)
library(tidyr)
library(kableExtra)

# Concatenar las tablas de data_importaciones y data exportaciones
importaciones_mensuales_2018_2020 %>% 
  full_join(exportaciones_mensuales_2018_2020, by=c("pais", 
                                                    "sac",
                                                    "anio",
                                                    "mes"),
            suffix=c("_importaciones","_exportaciones")
            )->data_comercio_exterior

#Sustituir los valores nulos "NA" y guardar en el mismo objeto
data_comercio_exterior %>% replace_na(
  list(
    valor_cif = 0,
    valor_fob = 0,
    kilogramos_importaciones = 0,
    kilogramos_exportaciones = 0)
) %>% 
  arrange(pais,anio,mes,sac)-> data_comercio_exterior 

data_comercio_exterior %>%  head(10) %>% 
  kable(caption = "Base de comercio Exterior 2018 -2020",
        align = "c") %>% 
  add_footnote(label = "Elaboracion propia con base en datos del BCR",
               notation = "symbol") %>% kable_styling()
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
* Elaboracion propia con base en datos del BCR

1.3.1 Guardar tabla de comercio exterior

save(data_comercio_exterior, file = "C:/Users/User/Desktop/tarea 5/tarea_metodos/data_comercio_exterior.Rdata")

2 Ejercicio

2-Realice la actualización de la tabla anterior con toda la información disponible para 2023.

library(dplyr)
library(tidyr)
library(kableExtra)

# Update de las importaciones hasta 2023
setwd("C:/Users/User/Desktop/tarea 5/tarea_metodos/comercio_update_importaciones")

archivos_importar<-list.files() 
#Leer los archivos del directorio de trabajo
lista_importaciones<-lapply(archivos_importar,
                            FUN=read_delim,"|",col_names=c("pais","sac","anio","mes","valor_cif",
                                                         "kilogramos"),
                            col_types=cols(pais="c",
                                           sac="c",
                                           anio="d",
                                           mes="d",
                                           valor_cif="d",
                                           kilogramos="d"),
                            skip=1)
data_importaciones_update<-bind_rows(lista_importaciones)

# Update de las exportaciones hasta 2023

setwd("C:/Users/User/Desktop/tarea 5/tarea_metodos/comercio_update_exportaciones")
archivos_export<-list.files() 
#Leer los archivos del directorio de trabajo
lista_export<-lapply(archivos_export,
                            FUN=read_delim,"|",col_names=c("pais","sac","anio","mes","valor_fob",
                                                         "kilogramos"),
                            col_types=cols(pais="c",
                                           sac="c",
                                           anio="d",
                                           mes="d",
                                           valor_fob="d",
                                           kilogramos="d"),
                            skip=1)
data_exportaciones_update<-bind_rows(lista_export)

#Concatenar las tablas de data_importaciones y data_exportaciones

data_importaciones_update %>% full_join(
  data_exportaciones_update,
  by=c("pais","sac","anio","mes"),
  suffix=c("_importaciones","_exportaciones")
)->data_comercio_exterior_update

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 tabla de comercio exterior y su actualizacion
data_comercio_exterior %>% bind_rows(data_comercio_exterior_update) %>% 
  arrange(pais, anio, mes, sac)->
  data_comercio_exterior


# Guardar 
save(data_comercio_exterior, file= "C:/Users/User/Desktop/tarea 5/data_comercio_exterior_update.RData")

#Mostrar tabla
data_comercio_exterior %>% head(10) %>%  
  kable(caption = "Base de Comercio Exterior 2018-2023",
        align = "c") %>% 
  add_footnote(label = "Elaboracion propia con base de 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
* Elaboracion propia con base de datos del BCR

3 Ejercicio

3-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(readxl)
library(kableExtra)

# Datos
load("C:/Users/User/Desktop/tarea 5/data_comercio_exterior_update.RData")

# Nombres paises
nombre_archivo <-("C:/Users/User/Desktop/tarea 5/master_paises_iso.xlsx")
nombres_iso_paises <- read_excel(nombre_archivo)
## New names:
## • `codigo_pais` -> `codigo_pais...5`
## • `codigo_pais` -> `codigo_pais...6`
## • `` -> `...13`
# Union de bases de datos 
data_comercio_exterior %>%
  left_join(nombres_iso_paises,
            by = c("pais" = "nom_pais_esp")) -> data_comercio_exterior_estandarizada

# Guardar 
save(data_comercio_exterior_estandarizada, file = "C:/Users/User/Desktop/tarea 5/data_comercio_exterior_estandarizada.RData")

# Mostrar tabla
data_comercio_exterior_estandarizada %>% 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

4 Ejercicio

4.1 Obtenga un ranking, anual, de los 5 principales socios comerciales de El Salvador, para el periodo 2018-2022.

library(png)
library(grid)
img <- readPNG("ejercicio_4.png")
 grid.raster(img)

# Filtrar años

anios_ranking<-2018:2022
data_comercio_exterior_estandarizada %>% 
  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

4.2 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

4.3 Tabla en formato requerido

library(kableExtra)
mi_tabla %>%
  kable(caption = paste("Top",5,"Socios Comerciales",
    min(anios_ranking),"-",max(anios_ranking))) %>%
  add_footnote(label = "Elaboracion 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 Elaboracion propia con base en datos del BCR