Origen de los datos

Base de datos de Comercio Exterior, Banco Central de Reserva de El Salvador
Para más información de las opciones de la librería readr, leer el siguiente enlace: Capitulo 11, de “R para Ciencia de Datos”

1. Creación de la Tabla de Importaciones

#Cargar Paquetes
library(readr)
library(dplyr)
library(kableExtra) #para mostrar "bonitas" las tablas en el documento
#Establecer directorio de trabajo
setwd("G:/Metodos 2020/comercio/Importaciones")
#Nombres de los archivos en el directorio de trabajo (sólo deben estar los archivos a leer)
archivos_importar<-list.files()
#Leer los archivos del directorio de trabajo
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)
#Emsamblar los archivos en un sólo dataframe
data_importaciones<-bind_rows(lista_importacion)
#Mostrar las tablas en formato html (es para esta publicación)
data_importaciones %>% head()%>% kable(caption="El Salvador: Base de Importaciones 2017-2020 (Julio)",
        align="c") %>% 
  add_footnote(label="Elaboración propia con base en datos del BCR",
               notation="symbol") %>%  kable_styling()
El Salvador: Base de Importaciones 2017-2020 (Julio)
pais sac anio mes valor_cif kilogramos
Groenlandia (Din) 2710199900 2017 2 317.40 8.16
Canada 0409000000 2017 3 673.18 836.10
Canada 0409000000 2017 4 171.17 600.00
Canada 0409000000 2017 5 330.09 660.00
Canada 0409000000 2017 6 149.46 437.50
Canada 0511100000 2017 3 18988.60 30.00
* Elaboración propia con base en datos del BCR

2. Creación de la Tabla de Exportaciones

#Cargar Paquetes
library(readr)
library(dplyr)
library(kableExtra) #para mostrar "bonitas" las tablas en el documento
#Establecer directorio de trabajo
setwd("G:/Metodos 2020/comercio/Exportaciones")
#Nombres de los archivos en el directorio de trabajo (sólo deben estar los archivos a leer)
archivos_importar <- list.files()
#Leer los archivos del directorio de trabajo
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
)
#Emsamblar los archivos en un sólo dataframe
data_exportaciones <- bind_rows(lista_exportacion)
#Mostrar las tablas en formato html (es para esta publicación)
data_exportaciones %>% head() %>% kable(caption = "Base de Exportaciones 2017-2020 (Julio)", align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de Exportaciones 2017-2020 (Julio)
pais sac anio mes valor_fob kilogramos
Canada 0106190000 2017 2 100.00 26.0
Canada 0106190000 2017 6 580.00 10.0
Canada 0106900000 2017 1 3491.55 11.0
Canada 0106900000 2017 2 4791.20 14.0
Canada 0106900000 2017 3 5516.00 17.0
Canada 0106900000 2017 4 5019.50 14.5
* Elaboración propia con base en datos del BCR

3. Creación de la tabla de Comercio Exterior

  • Se ha ejecutado un full_join entre las tablas de data_importaciones y data_exportaciones, como concecuencia hay partidas que no tendrán datos,por ejemplo un producto que no se fabrica en el país tendrá solo datos de importaciones, y en exportaciones aparecerá como “NA”, equivalente a un valor “nulo”, pero no cero.
  • En R, las operaciones con un “NA” dan como resultado un “NA”, por lo tanto se deben sustituir los “NA” con ceros en este caso, ya que esto si tiene sentido económico y lógico al momento de realizar operaciones con las columnas de la tabla.
  • Para esta ultima operación se utiliza el comando replace_na del paquete tidyr
#Cargar paquetes
library(dplyr)
library(tidyr)
library(kableExtra)
#Concatenar las tablas de data_importaciones & data_exportaciones
data_importaciones %>% full_join(
  data_exportaciones,
  by = c("pais", "sac", "anio", "mes"),
  suffix = c("_importaciones", "_exportaciones")
) -> data_comercio_exterior

#Sustitur 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 #Se hizo la asignación al final de la instrucción.

#Mostrar Tabla (primeros 6 elementos)
data_comercio_exterior %>% head() %>%
  kable(caption = "Base de Comercio Exterior 2017-2020 (Julio)",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de Comercio Exterior 2017-2020 (Julio)
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 4010390000 2017 4 58.06 0.92 0 0
Afganistan 6812999000 2017 4 88.38 1.39 0 0
Afganistan 8487900000 2017 4 20.93 0.33 0 0
Afganistan 8511800000 2017 4 98.93 1.56 0 0
Afganistan 8708930000 2017 4 62.18 0.98 0 0
Afganistan 9028200000 2017 4 130.06 2.05 0 0
* Elaboración propia con base en datos del BCR

4. Para Guardar la Tabla de Comercio Exterior

  • Con esto podremos usar la Tabla en otros análisis sin tener que volver a procesar los archivos.

  • El comando save permite guardar objetos individuales del enviroment en archivos individuales, con formato .RData

#Guardado del objeto data_comercio_exterior
save(data_comercio_exterior, file = "G:/Metodos 2020/comercio/data_comercio_exterior.RData")

5. Cómo Cargar nuestra tabla en otro script de análisis:

El comando load permite cargar objetos en el enviroment que se encuentran cargados en archivos .Rdata

#Carga de datos
load("G:/Metodos 2020/comercio/data_comercio_exterior.RData")

6. Actulización de la base (agosto 2020)

#Cargar paquetes
library(dplyr)
library(tidyr)
library(kableExtra)
setwd("G:/Metodos 2020/comercio/update/importaciones")
#Nombres de los archivos en el directorio de trabajo (sólo deben estar los archivos a leer)
archivos_importar <- list.files()
#Leer los archivos del directorio de trabajo
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
)
#Ensamblar los archivos en un sólo dataframe
data_importaciones_update <- bind_rows(lista_importacion)
#Exportaciones
setwd("G:/Metodos 2020/comercio/update/exportaciones")
#Nombres de los archivos en el directorio de trabajo (sólo deben estar los archivos a leer)
archivos_importar <- list.files()
#Leer los archivos del directorio de trabajo
lista_importacion <- 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
)
#Ensamblar los archivos en un sólo dataframe
data_exportaciones_update <- bind_rows(lista_importacion)


#Concatenar las tablas de data_importaciones & data_exportaciones
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 %>% bind_rows(data_comercio_exterior_update) %>%  arrange(pais, anio, mes, sac) ->
  data_comercio_exterior
#Volver a guardar!
# se Cambió el nombre para guardar la base anterior, por cualquier error que se pueda cometer al actualizar, o en caso de querer llevar un registro de versiones de la tabla.
save(data_comercio_exterior, file = "G:/Metodos 2020/comercio/data_comercio_exterior_actualizada.RData")

#Mostrar Tabla (primeros 6 elementos)
data_comercio_exterior %>% filter(anio == 2020, mes == 08) %>% head() %>%
  kable(caption = "Base de Comercio Exterior 2017-2020 (Agosto)",
        align = "c") %>%
  add_footnote(label = "Elaboración propia con base en datos del BCR",
               notation = "symbol") %>%  kable_styling()
Base de Comercio Exterior 2017-2020 (Agosto)
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 4202190000 2020 8 18.88 0.68 0 0
Afganistan 4202990000 2020 8 7.55 0.27 0 0
Afganistan 6103109000 2020 8 75.52 2.73 0 0
Afganistan 6110900000 2020 8 75.52 2.73 0 0
Afganistan 6117100000 2020 8 9.06 0.33 0 0
Afganistan 6204490000 2020 8 113.28 4.10 0 0
* Elaboración propia con base en datos del BCR