Parte Teórica

1. Explique, ¿qué son las estructuras de datos?

Son aquellos contenedores que almancenan datos, y estos se dividen de acuerdo a su número de dimensiones.

2. Explique,¿cómo se clasifican las estructuras de datos en R

Las estructuras de datos poseen dos dimensiones: Homogéneas y Heterogéneas. Las Homogéneas pueden contener un solo tipo de datos, mientras que las Heterogéneas pueden contener diversos tipos de datos.

Para explicarlo a detalle se tiene la siguiente tabla:
Dimensión Homogéneas Heterogéneas
1 Vector Lista
2 Matríz Data frame
n Array

3. Represente gráficamente la instrucción anti_join(A,B) a través de un diagrama de Venn y explique su significado.

Es la unión de todos los elementos que satisfacen la función sobre la que pertenezcan a A y no pertenezcan a B. Es decir que es cuando desea mantener todos los registros en la tabla original (ya sea de A o B), excepto aquellos registros que coinciden con la otra tabla.

Parte Práctica

Importación de la base de datos

load("/cloud/project/data_parcial_1_2022.RData")
source(file="/cloud/project/funciones_comercio_exterior_.R", echo = TRUE,
       max.deparse.length = 100,
       encoding = "utf-8")
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("/cloud/project/data_parcial_1_2022.RData")
## 
## > nombre_archivo <- "/cloud/project/nombres_iso_paises.xlsx"
## 
## > nombres_iso_paises <- read_excel(nombre_archivo)
## 
## > data_comercio_exterior <- data_comercio_exterior %>% 
## +     left_join(nombres_iso_paises, by = c(p .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises <- function() {
## +     paises <- nombres_iso_paises %>% select(nom_pais .... [TRUNCATED] 
## 
## > herramientas_mostrar_regiones <- function() {
## +     nombres_iso_paises %>% group_by(region, cod_re .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises_en_tabla <- function() {
## +     data_comercio_exterior %>% group_by(pai .... [TRUNCATED] 
## 
## > indicadores_IVCR_capitulo <- function(codigo_pais, 
## +     capitulo, anio) {
## +     codigo_pais <- e .... [TRUNCATED] 
## 
## > indicadores_IVCR_partida <- function(codigo_pais, 
## +     partida, anio) {
## +     codigo_pais <- enq .... [TRUNCATED] 
## 
## > indicadores_Balassa_capitulo <- function(codigo_pais, 
## +     capitulo, anio, normalizado = TRUE) { .... [TRUNCATED] 
## 
## > indicadores_Balassa_partida <- function(codigo_pais, 
## +     partida, anio, normalizado = TRUE) {
## + .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual_texto <- function(codigo_pais, 
## +     anio, normalizad .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual <- function(codigo_pais, 
## +     anio, normalizado = TR .... [TRUNCATED]
nombres_iso_paises <- read_excel("/cloud/project/nombres_iso_paises.xlsx")
data_comercio_exterior %>%
  left_join(nombres_iso_paises,
            by=c("pais"="nom_pais_esp"))-> data_comercio_exterior

Ejercicio 1:

Elabore una función que se llame totales_pais_anios, que use como argumentos el código de país iso de tres carácteres, para elegir el socio comercial de El Salvador, y permita obtener las Exportaciones y las Importaciones para un período.

library(dplyr)
totales_pais_anios <- function(codigo, periodo) {
  Exp_Imp_Total <- data_comercio_exterior %>%
    group_by(iso_3.x, anio) %>%
    summarise(Exp = sum(valor_fob) / 1e6,
              Imp = sum(valor_cif) / 1e6)
  
  Exp_Imp_Total %>% filter(iso_3.x == codigo, anio %in% periodo)
}

Ejercicio 2:

Usando la función creada en el ejercicio 1 y los comandos que sean necesarios, genere la siguiente tabla: (nota: ratio es el cociente entre Exportaciones e Importaciones) GTM=Guatemala, HND=Honduras.

library(kableExtra)
#Creando la tabla para Guatemala
tabla_GTM <- totales_pais_anios(codigo = "GTM", periodo = 2017:2020)
#Añadiendo los indicadores o variables para completar la tabla
colnames(tabla_GTM) <- c("codigo","anio", "Exp_GTM", "Imp_GTM")
tabla_GTM %>% mutate(Ratio_GTM=Imp_GTM/Exp_GTM)->tabla_GTM

#Creando la tabla para Honduras
tabla_HND<-totales_pais_anios(codigo ="HND", 2017:2020)
#Añadiendo los indicadores o variables para completar la tabla
colnames(tabla_HND)<-c("codigo","anio", "Exp_HND", "Imp_HND")
tabla_HND %>% mutate(Ratio_HND=Imp_HND/Exp_HND)->tabla_HND

#Uniendo ambas tablas en un join para crear la tabla final
tabla_GTM %>% left_join(tabla_HND, by= c("anio"="anio"))  %>% 
select("anio","Exp_GTM", "Imp_GTM", "Ratio_GTM", 
         "Exp_HND", "Imp_HND", "Ratio_HND") %>%
kable(caption="Exportaciones e Importaciones totales de Guatemala y Honduras") %>% kable_minimal() %>%
  add_footnote(label="Elaboración propia en base a datos del BCR",
               notation="symbol") %>% kable_styling()
Exportaciones e Importaciones totales de Guatemala y Honduras
anio Exp_GTM Imp_GTM Ratio_GTM Exp_HND Imp_HND Ratio_HND
2017 792.2283 1045.8558 1.320145 796.8583 583.3582 0.7320727
2018 847.9121 1169.5972 1.379385 905.7280 753.9197 0.8323909
2019 948.2554 1273.0989 1.342570 945.6884 826.9239 0.8744147
2020 523.3755 774.0205 1.478901 474.6502 412.0073 0.8680229
* Elaboración propia en base a datos del BCR

Ejercicio 3:

Obtenga los indicadores de Balassa, para el capítulo “01”, usando las funciones provistas en clase.

#Cargando nuevamente la base de datos
library(kableExtra)
load("/cloud/project/data_parcial_1_2022.RData")
source(file="/cloud/project/funciones_comercio_exterior_.R", echo = TRUE,
       max.deparse.length = 100,
       encoding = "utf-8")
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("/cloud/project/data_parcial_1_2022.RData")
## 
## > nombre_archivo <- "/cloud/project/nombres_iso_paises.xlsx"
## 
## > nombres_iso_paises <- read_excel(nombre_archivo)
## 
## > data_comercio_exterior <- data_comercio_exterior %>% 
## +     left_join(nombres_iso_paises, by = c(p .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises <- function() {
## +     paises <- nombres_iso_paises %>% select(nom_pais .... [TRUNCATED] 
## 
## > herramientas_mostrar_regiones <- function() {
## +     nombres_iso_paises %>% group_by(region, cod_re .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises_en_tabla <- function() {
## +     data_comercio_exterior %>% group_by(pai .... [TRUNCATED] 
## 
## > indicadores_IVCR_capitulo <- function(codigo_pais, 
## +     capitulo, anio) {
## +     codigo_pais <- e .... [TRUNCATED] 
## 
## > indicadores_IVCR_partida <- function(codigo_pais, 
## +     partida, anio) {
## +     codigo_pais <- enq .... [TRUNCATED] 
## 
## > indicadores_Balassa_capitulo <- function(codigo_pais, 
## +     capitulo, anio, normalizado = TRUE) { .... [TRUNCATED] 
## 
## > indicadores_Balassa_partida <- function(codigo_pais, 
## +     partida, anio, normalizado = TRUE) {
## + .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual_texto <- function(codigo_pais, 
## +     anio, normalizad .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual <- function(codigo_pais, 
## +     anio, normalizado = TR .... [TRUNCATED]
#Realizando el ejercicio
library(dplyr)
library(kableExtra)
capitulo<-"01"
data_frame("anio"=2017:2020,
           "IB_GTM"=sapply(X=2017:2020,FUN = indicadores_Balassa_capitulo ,codigo_pais=320,capitulo=capitulo),
           "IB_HND"=sapply(X=2017:2020,FUN = indicadores_Balassa_capitulo,codigo_pais=340,capitulo=capitulo))%>%
  kable(caption = "Indicador de Balassa de El Salvador con: Guatemala y Honduras, durante el periodo 2017-2020, para el capitulo “01” del SAC",
        digits = 2,align = "l")%>%
  kable_styling(bootstrap_options = "striped",
                full_width = TRUE)%>% 
  add_footnote(label="Elaboración propia en base a datos del BCR",
               notation="symbol") %>%  kable_minimal()
Indicador de Balassa de El Salvador con: Guatemala y Honduras, durante el periodo 2017-2020, para el capitulo “01” del SAC
anio IB_GTM IB_HND
2017 0.86 -0.04
2018 0.86 -0.13
2019 0.84 -0.24
2020 0.92 0.41
* Elaboración propia en base a datos del BCR

Ejercicio 4:

Genera una función que obtenga un ranking, anual de los “K” principales socios comerciales de El Salvador, para el período año inicio-año final. Presente sus resultafos en el sigueinte formato:

#Realizando la funcion
library(dplyr)
library(kableExtra)
library(stringr)
library(tidyverse)
funcion.del.ranking<-function(anio_inicio,anio_final,ranking_k){ 
data_comercio_exterior %>% 
 filter(anio>=anio_inicio,anio<=anio_final) ->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 =ranking_k , order_by = total) %>%
      as.data.frame() %>%
      group_by(anio) %>%
      mutate(ranking = row_number(), 
      data = paste(iso_3, "|", percent, sep = ""))%>%
      select(anio, data, ranking) %>%
      as.data.frame() -> reporte_del.ranking

return(reporte_del.ranking)
}

# Generacion de Ranking
funcion.del.ranking(2018,2020,ranking_k = 5)%>%
   pivot_wider(names_from = ranking,values_from = data)->aplicar_formato_tabla

#Agregando ultimos detalles
aplicar_formato_tabla %>%
  kable(caption = "Top de los Socios Comerciales en el periodo de 2018-2020")%>%
      add_footnote(label = "Elaboración propia en base a datos del BCR, para el Parcial 1 MAE118 2022",notation="symbol") %>% 
      kable_styling(bootstrap_options ="striped", full_width =TRUE)
Top de los Socios Comerciales en el periodo de 2018-2020
anio 1 2 3 4 5
2018 USA|44.07 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39
2019 USA|41.88 GTM|15.95 HND|15.91 NIC|6.68 CRI|4.5
2020 USA|36.8 GTM|16.92 HND|15.34 NIC|7.52 CRI|5.08
* Elaboración propia en base a datos del BCR, para el Parcial 1 MAE118 2022