Parte 1: Teórica

1) ¿Qué son las estructuras de datos?

Las estructuras de datos son las diferentes formas de almacenar y organizar información para manipular, buscar e insertar datos de manera eficiente.


2) ¿Cómo se clasifican las estructuras de datos en R?

Homogéneas, este tipo de estructura de datos solo pueden almacenar un tipo de datos, ya sea númerico, carácter, lógico, entero o NA. Pueden ser:

  • Vector atómico: vector fila o un vector columna. Contiene datos del mismo tipo.
  • Matriz: dos dimensiones, filas y columnas. Puede contener solo un tipo de datos.
  • Array: tiene \(n\) dimensiones. Puede contener solo un tipo de datos.

Heterogéneas, este tipo de estructura de datos pueden almacenar diferentes tipos de datos. Pueden ser:

  • Dataframe: estructura de datos bidimensional, permite almacenar diferentes tipos de datos.
  • Lista: es una colección de estructuras que pueden ser de diferente tipo. Es decir una lista puede contener: vectores, matrices, data frame, etc..

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

El anti_join\((A,B) = A - B\), al tener dos dataframes, al aplicar un anti join lo que sucederá es que solo quedarán en A las variables que no estén en B, es decir todas las variables comunes que tenga con B desaparecerán, solo quedarán aquellas variables que solo estén en A.


Parte II. Práctica

load("data_parcial_1_2021.RData")
source(file= "funciones_comercio_exterior(2).R")
#Ejercicio 1: Elabore una función que se llame totales_pais_anios, que use como argumento el código de país iso de tres caracteres, para elegir el socio comercial de El Salvador, y permita obtener las Exportaciones y las Importaciones para un periodo específico.

options(scipen=999)
library(dplyr)
library(readxl)
load("C:/Users/erick/Downloads/data_parcial_1_2021.RData")
nombre_archivo<-nombres_iso_paises
nombres_iso_paises<- nombre_archivo
data_comercio_exterior %>%
  left_join(nombres_iso_paises, 
            by= c("pais"="nom_pais_esp"))->data_comercio_exterior
totales_pais_anios<- function(iso_3,anio) { 
data_comercio_exterior %>%
  filter(iso_3==!!iso_3,anio==!!anio) %>%
  group_by(anio) %>%
  summarise(`Exportaciones` = sum(valor_fob)/1e6,
              `Importaciones` = sum(valor_cif)/1e6) %>%
    mutate(ratio = `Importaciones`/`Exportaciones`) %>% 
    select("anio", "Exportaciones", "Importaciones", "ratio")
}


#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 Importaciones y Exportaciones) GMT= Guatemala, HND= Honduras
library(kableExtra)
Consulta_ejercicio2 <- data.frame(totales_pais_anios("GTM", 2017:2020),
                                     totales_pais_anios("HND", 2017:2020)) %>%
  select("anio", "Exportaciones", "Importaciones", "ratio", "Exportaciones.1", "Importaciones.1", "ratio.1") %>% 
  head() %>% kable(
    col.names = c("anio", "Exportaciones_GTM", "Importaciones_GTM", "ratio_GTM", "Exportaciones_HND", "Importaciones_HND", "ratio_HND"),
    align = c("c", "c", "c", "c", "c", "c", "c"),
    digits = 2) %>% kable_styling()%>%
  footnote(general_title = "Fuente:",
           general = "Elaboración propia con base en datos del BCR.")
Consulta_ejercicio2
anio Exportaciones_GTM Importaciones_GTM ratio_GTM Exportaciones_HND Importaciones_HND ratio_HND
2017 193.69 240.34 1.24 201.01 138.80 0.69
2018 213.02 295.00 1.38 239.64 149.74 0.62
2019 216.18 268.33 1.24 241.75 176.12 0.73
2020 124.15 207.61 1.67 112.07 103.56 0.92
Fuente:
Elaboración propia con base en datos del BCR.


#Ejercicio 3: Obtenga los indicadores de Balassa, para el capítulo "01", usando las funciones propuestas en clase.
source(file="C:/Users/erick/Downloads/funciones_comercio_exterior(2).R")
capitulo<-"01"
data.frame("años"=2017:2020,
"IB_GMT"=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))%>%
  

  head() %>% kable(caption = "Índice de Balassa de El Salvador, con Guatemala y Honduras para los años 2017-2020", digits = 4) %>% kable_minimal() %>% 
  add_footnote(label="Elaboración propia con base en datos del BCR",
               notation="symbol") %>%  kable_styling()
Índice de Balassa de El Salvador, con Guatemala y Honduras para los años 2017-2020
años IB_GMT IB_HND
2017 0.8594 -0.0407
2018 0.8564 -0.1278
2019 0.8423 -0.2436
2020 0.9171 0.4121
* Elaboración propia con base en 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 periodo año inicio-año final. Presente sus resultados en el siguiente formato.

#Ranking
options(scipen=999)
library(dplyr)
library(readxl)
load("data_parcial_1_2021.RData")
nombre_archivo<-nombres_iso_paises
nombres_iso_paises<- nombre_archivo
data_comercio_exterior %>%
  left_join(nombres_iso_paises, 
            by= c("pais"="nom_pais_esp"))->data_comercio_exterior
anios_ranking<-2018:2020
data_comercio_exterior %>%
  filter(anio %in% anios_ranking)-> data_ranking

library(dplyr)
data_ranking %>%
  group_by(anio,iso_3) %>%
  summarise(total=sum(valor_fob)) %>%
  mutate(percent= round(prop.table(total)*100,2)) %>%
  slice_max(n=10,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
print(insumo_reporte)
##    anio      data rank
## 1  2018 USA|44.07    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  2018  MEX|2.44    6
## 7  2018  PAN|2.08    7
## 8  2018  DOM|1.65    8
## 9  2018  CHN|1.45    9
## 10 2018  ESP|0.82   10
## 11 2019 USA|41.88    1
## 12 2019 GTM|15.95    2
## 13 2019 HND|15.91    3
## 14 2019  NIC|6.68    4
## 15 2019   CRI|4.5    5
## 16 2019  MEX|2.53    6
## 17 2019  PAN|2.05    7
## 18 2019  DOM|1.77    8
## 19 2019  CAN|1.08    9
## 20 2019  CHN|0.87   10
## 21 2020  USA|36.8    1
## 22 2020 GTM|16.92    2
## 23 2020 HND|15.34    3
## 24 2020  NIC|7.52    4
## 25 2020  CRI|5.08    5
## 26 2020  MEX|2.42    6
## 27 2020  PAN|1.97    7
## 28 2020  DOM|1.81    8
## 29 2020  KOR|1.61    9
## 30 2020   CHN|1.6   10
library(tidyr)
insumo_reporte %>%
  pivot_wider(names_from = rank, values_from = data)->mi_tabla
print(mi_tabla)
## # A tibble: 3 × 11
##    anio `1`       `2`       `3`       `4`    `5`   `6`   `7`   `8`   `9`   `10` 
##   <dbl> <chr>     <chr>     <chr>     <chr>  <chr> <chr> <chr> <chr> <chr> <chr>
## 1  2018 USA|44.07 HND|15.34 GTM|14.36 NIC|6… CRI|… MEX|… PAN|… DOM|… CHN|… ESP|…
## 2  2019 USA|41.88 GTM|15.95 HND|15.91 NIC|6… CRI|… MEX|… PAN|… DOM|… CAN|… CHN|…
## 3  2020 USA|36.8  GTM|16.92 HND|15.34 NIC|7… CRI|… MEX|… PAN|… DOM|… KOR|… CHN|…
library(kableExtra)
library(tidyr)
mi_tabla %>%
  kable(caption= paste("Top", 10,  "de Exportaciones periodo",
                       min(anios_ranking),"-", max(anios_ranking),"datos en porcentaje de las exportaciones totales")) %>%
  add_footnote(label="Elaborado para el Parcial 1 MAE118 2022")
Top 10 de Exportaciones periodo 2018 - 2020 datos en porcentaje de las exportaciones totales
anio 1 2 3 4 5 6 7 8 9 10
2018 USA|44.07 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39 MEX|2.44 PAN|2.08 DOM|1.65 CHN|1.45 ESP|0.82
2019 USA|41.88 GTM|15.95 HND|15.91 NIC|6.68 CRI|4.5 MEX|2.53 PAN|2.05 DOM|1.77 CAN|1.08 CHN|0.87
2020 USA|36.8 GTM|16.92 HND|15.34 NIC|7.52 CRI|5.08 MEX|2.42 PAN|1.97 DOM|1.81 KOR|1.61 CHN|1.6
a Elaborado para el Parcial 1 MAE118 2022