Parte Teórica

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

Las estructuras de datos hacen referencia al contenedor o la forma en que se organizan los diferentes tipos de datos segun sean sus caracteristicas, ya que estos pueden ser del mismo tipo o diferentes; de tal forma que se puedan realizar operaciones dentro de ellas de forma rápida y 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: Hacen referencia a las que solo pueden almacenar datos de un mismo tipo, dentro de estos estan incluidas las siguientes estructuras de control: Vectores: Son objetos de una sola dimensión es decir, son vectores atómicos por ello tienen la caracteristica que solo pueden albergar datos de un solo tipo ya sean datos numéricos, cadena de caracteres o datos lógicos, entre otros. Matrices: Pueden ser definidas como vectores multidimensionales, es decir que solo pueden contener datos de un solo tipo, además se distinguen por tener específicamente dos dimensiones, un “largo”” y un “alto”. Las matrices son, por lo tanto, una estructura con forma rectangular, con renglones y columnas. Array: Por su parte, 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, esto limita su uso en la práctica.

b) Estructuras heterogenas: Hacen referencia a las estructuras que pueden almacenar datos de diferentes tipos, dentro de estructuras de control tenemos: Listas: Son estructuras de datos unidimensionales, podemos entender una lista como 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 el comando que mantiene los elementos del objeto A, para los cuales no existe informacion en el objeto B. Es decir su finalidad consiste en identificar aquellas observaciones que no se encuentran en el segundo data.

Parte Práctica

library(dplyr)
load("C:/Users/MINEDUCYT/Desktop/MAE/Ana Sofia Iraheta Mendoza - 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
Mi_Tabla <- tabla_GTM %>% left_join(tabla_HND, by= c("anio"="anio"))

Mi_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/MINEDUCYT/Desktop/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/MINEDUCYT/Desktop/MAE/Ana Sofia Iraheta Mendoza - data_parcial_1_2021.RData")
## 
## > nombre_archivo <- nombres_iso_paises
## 
## > nombres_iso_paises <- 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