1. Compilación de base de datos de Comercio Exterior (2018-2020)

Indicación: 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.

#ELABORACIÓN DE TABLA DE IMPORTACIONES 2018-2020

library(readr)
library(dplyr)
library(kableExtra)
setwd("C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/Importaciones/")
archivos_importar<-list.files()
lista_importacion<-lapply(archivos_importar,
                          FUN = read_delim,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<-bind_rows(lista_importacion)

data_importaciones %>% head() %>% kable(caption="El Salvador: Base de Importaciones 2018-2020",
        align="c") %>% 
  add_footnote(label="Elaboracion 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 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
* Elaboracion propia con base en datos del BCR
#ELABORACIÓN DE TABLA DE EXPORTACIONES 2018-2020

library(readr)
library(dplyr)
library(kableExtra)
setwd("C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/Exportaciones/")
archivos_importar <- list.files()
lista_exportacion <- lapply(archivos_importar,
                            FUN = read_delim,
                            delim = "|",
                            col_names = c("pais",
                                          "sac",
                                          "anio",
                                          "mes",
                                          "valor_fob",
                                          "kilogramos"),
                            col_types = cols(pais = "c",
                                             sac = "c",
                                             anio = "d",
                                             mes = "d",
                                             valor_cif = "d",
                                             kilogramos = "d"),
                            skip = 1)
data_exportaciones <- bind_rows(lista_exportacion)

data_exportaciones %>% head() %>% kable(caption = "Base de Exportaciones 2018-2020", align = "c") %>%
  add_footnote(label = "Elaboracion propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
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
* Elaboracion propia con base en datos del BCR
#ELABORACIÓN DE TABLA DE COMERCIO EXTERIOR 2018-2020

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

data_importaciones %>% full_join(data_exportaciones,
  by = c("pais", "sac", "anio", "mes"),
  suffix = c("_importaciones", "_exportaciones")) -> data_comercio_exterior

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 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 BCR
save(data_comercio_exterior, file = "C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/data_comercio_exterior122020.RData")

2. Actualización de base de Comercio Exterior con última información del 2023.

Indicación: Realice la actualización de la tabla anterior con toda la información disponible para 2023.

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

#ELABORACIÓN DE TABLA DE IMPORTACIONES 2018-2020

setwd("C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/Importaciones update")
archivos_importar <- list.files()
lista_importacion <- lapply(archivos_importar,
                            FUN = read_delim,
                            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_importacion)

data_importaciones_update %>% head() %>% kable(
  caption = "Base de Importaciones 2021-2023 (Agosto)",
  align = "c") %>%
  add_footnote(label = "Elaboracion propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de Importaciones 2021-2023 (Agosto)
pais sac anio mes valor_cif kilogramos
Canada 0511100000 2021 3 7162.29 39.00
Canada 0712909000 2021 1 1540.96 420.00
Canada 0712909000 2021 6 4519.03 1269.59
Canada 0713200000 2021 3 827.02 381.60
Canada 0713200000 2021 4 808.42 381.60
Canada 0713331000 2021 6 199.18 2162.00
* Elaboracion propia con base en datos del BCR
library(dplyr)
library(tidyr)
library(kableExtra)

#ELABORACIÓN DE TABLA DE EXPORTACIONES 2018-2020

setwd("C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/Exportaciones update")
archivos_importar <- list.files()
lista_exportacion <- lapply(archivos_importar,
                            FUN = read_delim,
                            delim = "|",
                            col_names = c("pais",
                                          "sac",
                                          "anio",
                                          "mes",
                                          "valor_fob",
                                          "kilogramos"),
                            col_types = cols(pais = "c",
                                             sac = "c",
                                             anio = "d",
                                             mes = "d",
                                             valor_cif = "d",
                                             kilogramos = "d"),
                            skip = 1)

data_exportaciones_update <- bind_rows(lista_exportacion)

data_exportaciones_update %>% head() %>% kable(
  caption = "Base de exportaciones 2021-2023 (Agosto)",
  align = "c") %>%
  add_footnote(label = "Elaboracion propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de exportaciones 2021-2023 (Agosto)
pais sac anio mes valor_fob kilogramos
Canada 0602100000 2021 1 564056.07 9281.89
Canada 0602100000 2021 2 172258.81 2235.98
Canada 0602100000 2021 3 104919.78 1401.41
Canada 0602100000 2021 4 49336.69 655.20
Canada 0602100000 2021 5 15638.69 359.48
Canada 0602100000 2021 6 128112.50 4207.24
* Elaboracion propia con base en datos del BCR
library(dplyr)
library(tidyr)
library(kableExtra)

#UNIÓN DE DATOS DE IMPORTACIONES Y EXPORTACIONES 2021-2023 PARA BASE DE DATOS DE COMERCIO EXTERIOR ACTUALIZADA

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

#UNIÓN DE BASE DE DATOS DE COMERCIO EXTERIOR 2018-2020 (ANTIGUA) CON BASE DE DATOS ACTUALIZADA (2021-2023)

data_comercio_exterior %>% 
  bind_rows(data_comercio_exterior_update) %>%
  arrange(pais, anio, mes, sac) ->data_comercio_exterior

save(data_comercio_exterior, file = "C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/data_comercio_exterior082023.RData")

data_comercio_exterior %>% filter(anio == 2023, mes == 08) %>% head(10) %>%
  kable(caption = "Base de Comercio Exterior 2018-2023 (Agosto)",
        align = "c") %>%
  add_footnote(label = "Elaboracion propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de Comercio Exterior 2018-2023 (Agosto)
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Albania 6109900000 2023 8 77.80 1.22 0.0 0.00
Albania 8484200000 2023 8 165.15 2.60 0.0 0.00
Albania 8544300000 2023 8 849.34 2.09 0.0 0.00
Alemania 0402911000 2023 8 37202.00 19624.00 0.0 0.00
Alemania 0602100000 2023 8 1272.39 48.00 0.0 0.00
Alemania 0901113000 2023 8 0.00 0.00 350816.6 56657.36
Alemania 1105201000 2023 8 43882.78 15500.00 0.0 0.00
Alemania 1107100000 2023 8 996.65 630.00 0.0 0.00
Alemania 1108130000 2023 8 50912.16 38120.00 0.0 0.00
Alemania 1301909000 2023 8 0.00 0.00 92000.0 2195.00
* Elaboracion propia con base en datos del BCR

3. Estandarización de los países.

Indicación: 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)
nombre_archivo<- "C:/Users/erick/OneDrive/Escritorio/RESPALDO/UES/Ciclo II - 2023/MAE118/importacion de datos/nombres_iso_paises.xlsx"

nombre_iso_paises<- read_excel(nombre_archivo)
  data_comercio_exterior %>%
  left_join(nombre_iso_paises,
            by = c("pais" = "nom_pais_esp")) -> data_comercio_exterior
  head(data_comercio_exterior, 10)

4. Ranking

Indicaciones: 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: Top 5 Socios comerciales, periodo 2018-2023, datos en porcentaje de las exportaciones totales.

library(tidyr)

anios_ranking<-2018:2022 #establecemos años del ranking en una variable para estandarizar el proceso
data_comercio_exterior %>% #partimos de la base de datos y la pasamos a filter
  filter(anio %in% anios_ranking)  %>%  #filtro por la variable de año según los solicitados.
  group_by(anio,iso_3) %>% #agrupamos por año y por código ISO de los países 
summarise(total=sum(valor_fob)) %>% #realizamos operaciones por agrupaciones (summarise) totalizando el valor fob (total)
  mutate(porcentaje=round(prop.table(total)*100,2)) %>% #creamos la variable "porcentaje" a través de mutate y con prop.table obtenemos los porcentajes
  slice_max(n = 5,order_by = total) %>% #"recortamos/slice" los primero (max) 5 valores según la variable "total"
  as.data.frame() %>% #convertimos el resultado en data frame para comprimir y continuar trabajando con las operaciones obtenidas
  group_by(anio) %>% #agrupamos por año nuevamente
  mutate(rank = row_number(),#creamos la variable "rank" para enumerar/enlistar las observaciones según su posición (row_number/número de fila)
         data=paste(iso_3,"|",porcentaje,sep = "")) %>% #colocamos formato solicitado
  select(anio,data,rank) %>% #filtramos columnas con las variables que acabamos de crear 
  as.data.frame()  %>% #convertimos en data frame/comprimimos los resultados
  pivot_wider(names_from = rank,values_from = data) %>% 
   kable(caption = paste("Top",5,"de Exportaciones periodo", #Aplicamos formato,encabezado y pie de nota.
    min(anios_ranking),"-",max(anios_ranking))) %>%
    add_footnote(label = "Elaboracion propia con base en datos BCR",
               notation = "symbol") %>%  kable_styling()
Top 5 de Exportaciones periodo 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
* Elaboracion propia con base en datos BCR
#Realicé los comentarios en primera persona del plural debido a la publicación en RPubs :).