Parte Teórica

1) Explique ¿qué son las estructuras de datos?

Las estructuras de datos son el contenedor o la manera en la que se pueden organizar los tipos de datos, dependiendo de las características de los mismos. Son una forma de organizar, manipular, buscar e insertar datos de manera eficiente.

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

Las estructuras de datos en R pueden ser de dos tipos:

a) Estructuras homogeneas: Las estructuras homogeneas son aquellas que almacenan datos de solo un mismo tipo, dentro de estas se encuentran las siguientes estructuras de control:

  • Vector simple: Son vectores atómicos por lo que solo pueden contener un solo tipo de dato, ya sea númerico, cadena de carácteres, lógicos, etc.

  • Matrices: En R es un conjunto de elementos del mismo tipo los cuales están organizados en filas y columnas.

  • Array: Pueden tener un número arbitrario de dimensiones.Los arrays tienen la restricción de que todos sus datos deben ser del mismo tipo, no importando en cuántas dimensiones se encuentren.

b) Estructuras heterogenas: Son estructuras que pueden almacenar datos de diferentes tipos, las estructuras de control son las siguientes:

  • Listas: Son estructuras de datos unidimensionales, una lista es un contenedor de objetos que pueden ser de cualquier clase: números, vectores, matrices, funciones, data. frames, incluso otras listas.

  • Dataframe: Son estructuras de dos dimensiones que pueden contener datos de diferentes tipos, se puede entender como una versión más flexible de una matriz.

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.

Es la unión de todos los elementos de A que solamente pertenezcan a “A” y no a B.

Parte Práctica

library(dplyr)
load("C:/Users/PC/Desktop/UES/CICLO 2 2022/MAE/Practica para repetido parcial 1/Luis Alexander Palacios Zuniga - 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

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 caracteres, para elegir el socio comercial de El Salvador, permita obtener las Exportaciones y las Importaciones para un periodo especifico

library(dplyr)
totales_pais_anios <-function(codigo, periodo){
  Exp_Imp_Total <- data_comercio_exterior %>% 
    group_by(iso_3,anio) %>% 
    summarise(Exp = sum(valor_fob)/1e6,
              Imp = sum(valor_cif)/1e6)
  Exp_Imp_Total %>% filter(iso_3 ==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: GTM= Guatemala, HND = Honduras.

library(kableExtra)

## Tabla de GTM
tabla_GTM<-totales_pais_anios("GTM", 2017:2020)
colnames(tabla_GTM)<-c("Pais", "anio", "Exportaciones_GTM", "Importaciones_GTM")
tabla_GTM %>% mutate(ratio_GTM=Importaciones_GTM/Exportaciones_GTM)->tabla_GTM

## Tabla de HND
tabla_HND<-totales_pais_anios("HND",2017:2020)
colnames(tabla_HND)<-c("Pais", "anio", "Exportaciones_HND", "Importaciones_HND") 
tabla_HND %>% mutate(ratio_HND=Importaciones_HND/Exportaciones_HND)->tabla_HND

## usando left_join
Tabla <- tabla_GTM %>% left_join(tabla_HND, by= c("anio"="anio"))

Tabla %>% select("anio","Exportaciones_GTM", "Importaciones_GTM","ratio_GTM","Exportaciones_HND", "Importaciones_HND","ratio_HND")%>%
  head(4)%>%
  kable(col.names=(c("anio","Exportaciones_GTM", "Importaciones_GTM","ratio_GTM","Exportaciones_HND", "Importaciones_HND","ratio_HND")),
        align="c")%>%
  kable_classic(html_font= "Times New Roman",
                font_size= 14)%>%
  row_spec(0, bold= T)%>%
  footnote(general_title= "fuente:",
           general= "Elaboracion propia con base en datos del BCR.")
anio Exportaciones_GTM Importaciones_GTM ratio_GTM Exportaciones_HND Importaciones_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
fuente:
Elaboracion propia con base en datos del BCR.

Ejercicio 3:

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

source("C:/Users/PC/Desktop/UES/CICLO 2 2022/MAE/funciones_comercio_exterior.R",
  echo = TRUE,
  max.deparse.length = 100,
  encoding = "utf-8")
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("C:/Users/PC/Desktop/UES/CICLO 2 2022/MAE/Parcial año pasado/Luis Alexander Palacios Zuniga - ..." ... [TRUNCATED] 
## 
## > nombre_archivo <- "C:/Users/PC/Desktop/UES/CICLO 2 2022/MAE/Practica comercio exterior/nombres_iso ..." ... [TRUNCATED] 
## 
## > 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]
library(readr)
library(dplyr)
library(knitr)
library(kableExtra)
resultado_balassa<-data.frame("anios"=2017:2020,
                               "IB_GTM"= sapply(X=2017:2020,
                                              FUN= indicadores_Balassa_capitulo,
                                              codigo_pais=320,
                                              capitulo="01"),
                                "IB_HND"= sapply(X=2017:2020,
                                              FUN= indicadores_Balassa_capitulo,
                                              codigo_pais=340,
                                              capitulo="01"))
resultado_balassa%>%head()%>%
 kable(
    caption = "**indice de Balassa: Guatemala y Honduras para el periodo 2017-2020",
    col.names = c("Anio", "IB_GTM", "IB_HND"),
     align = c("c", "c", "c"),
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente:**",
           general = "Elaboracion propia con base en datos del BCR")
**indice de Balassa: Guatemala y Honduras para el periodo 2017-2020
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
Fuente:
Elaboracion propia con base en datos del BCR

Ejercicio 4:

Genera una función que obtenga un ranking, anuales, 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: Top K Socioscomerciales, periodo año inicio-año final, datos en porcentaje de las exportaciones totales.

options(scipen=999)
library(dplyr)
library(tidyr)
library(kableExtra)
Ranking_socios_comerciales<- function(k,anios){
            anios_ranking<-anios
            data_comercio_exterior%>% 
              filter(anio %in% anios_ranking )-> data_ranking
            
            data_ranking %>% 
              group_by(anio, iso_3) %>% 
              summarise(Total_Exportaciones= sum(valor_fob)) %>% 
              mutate(porcentaje=
                       round(prop.table(Total_Exportaciones)*100,2)) %>% 
              slice_max(n=k, order_by = Total_Exportaciones) %>% 
              as.data.frame() %>% 
              group_by(anio) %>% 
              mutate(rank=row_number(),data=paste(iso_3,"|",porcentaje, sep ="")) %>%
              select(anio,data,rank) %>% 
              as.data.frame()->Exportaciones
          
          Exportaciones %>% 
              pivot_wider(names_from = rank, 
                          values_from = data)->mi_tabla
            mi_tabla %>% kable(caption = paste("TOP",k,"Socios Comerciales,", "periodo", min(anios_ranking),"-",max(anios_ranking),"datos en porcentaje de las exportaciones totales")) %>% kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T, color = "black") %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaborado para el Parcial 1 MAE118 2022") 

}

Ranking_socios_comerciales(10, 2018:2020)
TOP 10 Socios Comerciales, 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
Fuente:
Elaborado para el Parcial 1 MAE118 2022