Guía de trabajo sobre base de datos de Comercio Exterior

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(dplyr)
library(readr)
library(kableExtra)

# Creancion de la tabla de importaciones_2018_2020
setwd("D:/Universidad/3° año/Metodos/Tarea5/Importaciones/")
nombres_achivos_importaciones<- list.files()
lista_importaciones<-lapply(nombres_achivos_importaciones,
                            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)

importaciones_mensuales_2018_2020<- bind_rows(lista_importaciones)

#Creacion de la tabla de exportaciones_2018_2020
setwd("D:/Universidad/3° año/Metodos/Tarea5/Exportaciones/")
nombres_achivos_exportaciones<- list.files()
lista_exportaciones<-lapply(nombres_achivos_exportaciones,
                            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_fob="d",
                                  kilogramos="d"),
                          skip=1)

                            

exportaciones_mensuales_2018_2020<- bind_rows(lista_exportaciones)


# Creación de la tabla de Comercio Exterior_2018_2020
library(tidyr)

importaciones_mensuales_2018_2020 %>% full_join(
  exportaciones_mensuales_2018_2020,
  by = c("pais", "sac", "anio", "mes"),
  suffix = c("_importaciones", "_exportaciones")
) -> data_comercio_exterior_2018_2020

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

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

#Mostrar Tabla (primeros 10 elementos)
data_comercio_exterior_2018_2020 %>% head(10) %>%
  kable(caption = "El Salvadore: Base de Comercio Exterior 2018-2020",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
El Salvadore: 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
# Se guarda la tabla de comercio exterior
save(data_comercio_exterior_2018_2020, file = "D:/Universidad/3° año/Metodos/Tarea5/data_comercio_exterior_2018_2020.RData")

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

#importaciones actualizadas
setwd("D:/Universidad/3° año/Metodos/Tarea5/Update/Importaciones/")
archivos_updateimportar <- list.files()

#Leer los archivos del directorio de trabajo
lista_updateimportacion <- lapply(
  archivos_updateimportar,
  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
)
#Ensamblar los archivos en un sólo dataframe
data_importaciones_update_2021_2023 <- bind_rows(lista_updateimportacion)


#Exportaciones actualizadas

setwd("D:/Universidad/3° año/Metodos/Tarea5/Update/Exportaciones/")

#Nombres de los archivos en el directorio de trabajo (sólo deben estar los archivos a leer)
archivos_updateexportar <- list.files()

#Leer los archivos del directorio de trabajo
lista_updateexportacion <- lapply(
  archivos_updateexportar,
  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_fob = "d",
    kilogramos = "d"
  ),
  skip = 1
)
#Ensamblar los archivos en un sólo dataframe
data_exportaciones_update_2021_2023 <- bind_rows(lista_updateexportacion)


#Compilar las tablas de data_importaciones_update_2021_2023 y data_exportaciones_update_2021_2023

data_importaciones_update_2021_2023 %>% full_join(
  data_exportaciones_update_2021_2023,
  by = c("pais", "sac", "anio", "mes"),
  suffix = c("_importaciones", "_exportaciones")
) -> data_comercio_exterior_update_2021_2023

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

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

# Unir la tabla de comercio exterior y su actualización
data_comercio_exterior_2018_2020 %>% bind_rows(data_comercio_exterior_update_2021_2023) %>%  arrange(pais, anio, mes, sac) ->
  data_comercio_exterior_actualizada_2018_2023

# Se Vuelve a guardar

save(data_comercio_exterior_actualizada_2018_2023, file = "D:/Universidad/3° año/Metodos/Tarea5/data_comercio_exterior_actualizada_2018_2023.RData")

#Mostrar Tabla (primeros 10 elementos)
data_comercio_exterior_actualizada_2018_2023 %>% filter(anio == 2023, mes == 08) %>% head(10) %>%
  kable(caption = "El Salvadore: Base de Comercio Exterior 2018-2023 (Agosto)",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
El Salvadore: 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
* Elaboración propia con base en datos del BCR

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)
#Pegar los nombres de los paises
nombre_archivo_nombresiso<-"D:/Universidad/3° año/Metodos/Tarea5/master_paises_iso.xlsx"
nombre_iso_paises<-read_excel(nombre_archivo_nombresiso)
data_comercio_exterior_actualizada_2018_2023 %>% 
  left_join(nombre_iso_paises,
            by=c("pais"="nom_pais_esp"))->data_comercio_exterior_actualizada_2018_2023_ISO
head(data_comercio_exterior_actualizada_2018_2023_ISO,10)

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

#Seleccionar los anios de ranking
anios_ranking<-2018:2022
data_comercio_exterior_actualizada_2018_2023_ISO %>% 
  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=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
#tabla en formato requerido

library(tidyr)
insumo_reporte %>% 
pivot_wider(names_from = rank, values_from = data)->mi_tabla

library(kableExtra)
mi_tabla %>% 
  kable(caption = paste("Top",5,"de Exportaciones periodo",
                        min(anios_ranking),"-",max(anios_ranking),
                        " datos en porcentaje de las exportaciones totales."
                       )) %>% 
  add_footnote(label = "Elaboracion propia en base a datos del BCR")
Top 5 de Exportaciones periodo 2018 - 2022 datos en porcentaje de las exportaciones totales.
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.24 GTM|16.87 HND|15.45 NIC|7.25 CRI|4.63
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 en base a datos del BCR

#Nota: el pais NA de la tabla “Top 5 de Exportaciones periodo 2018 - 2022 datos en porcentaje de las exportaciones totales” es Estados Unidos, el nombre ISO3 no se generó por problemas de compatibilidad entre la variable “pais” de la tabla “data_comercio_exterior_actualizada_2018_2023” y la variable “nom_pais_esp” de la tabla “nombre_iso_paises”