BM20033_P1_SOLUCION

PARCIAL 1 SOLUCION MAE118 JEFFRY ISAAC BONILLA MELARA BM20033

12/10/2022

PARTE I: TEÓRICA (50%):

1) [10%] Explique ¿Qué significa las estructuras de datos?

El termino de estructura de datos se refiere a un contenedor, en donde este permite el almacenamiento de datos de forma ordenada y estructurada.

2) [10%] Explique ¿Cómo se clasifican las estructuras de datos en R?

La clasificaión de las Estructuras de datos

library(dplyr)
library(kableExtra)
Estructura_dato<-data.frame(Dimensiones=c("1","2","n"),
           Homogeneas= c("Vector Atomico", "Matriz", "Array"),
           Heterogeneas=c("Lista", "Data Frame"," "))
print(Estructura_dato) %>% kable(col.names = (c("Dimensiones","Homogeneas","Heterogeneas")),
        align = "c") %>%
  kable_classic(html_font = "arial",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "Fuente:Libro de R para principiantes", general = "Adaptado de Wickham (2016).")
##   Dimensiones     Homogeneas Heterogeneas
## 1           1 Vector Atomico        Lista
## 2           2         Matriz   Data Frame
## 3           n          Array
Dimensiones Homogeneas Heterogeneas
1 Vector Atomico Lista
2 Matriz Data Frame
n Array
Fuente:Libro de R para principiantes
Adaptado de Wickham (2016).

1)Estructuras Homogéneas:

Estas estruturas de datos se caracteriza porque dentro de ellas solo pueden almacenar datos de un solo tipo.

  • Vector atómico
  • Matriz
  • Array

2) Estrcturas Heterogénea Esta estruturas de datos se caracterizan porque dentro de ellas pueden almacenar datos de diferentes tipos, por ejemplo pueden almacenar al mismo tiempo datos de tipo numerico y de tipo caracter.

  • Lista
  • Data frame

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

Es todo lo que esta en A pero excluyento todo la parte de B. El anti_join es el mecanismo inverso al semi_join.

PARTE II: PRACTICA (50%):

##CARGA DE LA DATA FRAME A UTILIZAR

library(dplyr)
load("C:/Users/Jeffry/Documents/CICLO2_2022/MAE/PRACTICA PARCIAL/Jeffry Isaac Bonilla Melara - 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 Nº 1 [10%]:

Elabore una funcion que se llame totales_pais_anios que use como argumentos el código de pais iso de tres caracteres, para elegir el socio comercial de El Salvador, y permita obtener las Exportaciones y las Importaciones para un periodo especifico.

library(dplyr)
totales_pais_anios<-function(iso_tres,anios){
total_E_M<-data_comercio_exterior %>%
            group_by(iso_3,anio) %>%
            summarise(`Total Exportaciones MM US$`=sum(valor_fob)/1e6,
                      `Total Importaciones MM US$`=sum(valor_cif)/1e6)
total_E_M %>% filter(iso_3==iso_tres,anio %in% anios)
  }

Ejercicio Nº 2 [10%]:

Usando la funcion creada en el ejercicio 1 y los comandos que sean necesarios, genere la siguiente tabla:(nota ratio es el cociente entre importaciones y Exportaciones) GTM=guatemala,HND=honduras

library(dplyr)
library(kableExtra)

library(dplyr)
GTM_E_M<-totales_pais_anios(iso_tres = "GTM",2017:2020)
colnames(GTM_E_M)<-c("Pais","anio","Exportaciones_GTM","Importaciones_GTM")
GTM_E_M %>% mutate(ratio_GTM=Importaciones_GTM/Exportaciones_GTM,)->GTM_E_M 
HND_E_M<-totales_pais_anios(iso_tres = "HND",2017:2020)
colnames(HND_E_M)<-c("Pais","anio","Exportaciones_HND","Importaciones_HND")
HND_E_M %>% mutate(ratio_HND=Importaciones_HND/Exportaciones_HND)->HND_E_M
tabla_E_M_Paises<-full_join(GTM_E_M,HND_E_M,by = c("anio"="anio"))
tabla_E_M_Paises %>% 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",digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "Fuente:", general = "Elaboración propia con base en datos del BCR.")
anio Exportaciones_GTM Importaciones_GTM ratio_GTM Exportaciones_HND Importaciones_HND ratio_HND
2017 792.23 1045.86 1.32 796.86 583.36 0.73
2018 847.91 1169.60 1.38 905.73 753.92 0.83
2019 948.26 1273.10 1.34 945.69 826.92 0.87
2020 523.38 774.02 1.48 474.65 412.01 0.87
Fuente:
Elaboración propia con base en datos del BCR.

Ejercicio Nº 3 [10%]:

Obtenga los indicadores de Balassa, para el capitulo “01”, usando las funciones provistas en clase

#Cargando Funciones

source(
  file = "C:/Users/Jeffry/Documents/CICLO2_2022/MAE/COMERCIO EXTERIOR/funciones_comercio_exterior_2.R",
  echo = TRUE,
  max.deparse.length = 100,
  encoding = "utf-8"
)
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("C:/Users/Jeffry/Documents/CICLO2_2022/MAE/PRACTICA PARCIAL/Jeffry Isaac Bonilla Melara - dat ..." ... [TRUNCATED] 
## 
## > 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(kableExtra)
capitulo<-"01"
data.frame("años"=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))%>%
  head() %>% kable(caption = "Índice de Balassa de El Salvador, con Panama y Belice 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 Panama y Belice para los años 2017-2020
años IB_GTM 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 Nº 4 [20%]:

Genera una funcion que obtengan un ranking, anual, de los “k” princpiales socios comerciales de El Salvador, para el periodo año inicio-año final. presente sus resultasdos:

FUNCION RANKING PARCIAL

options(scipen=999)
library(dplyr)
library(tidyr)
library(kableExtra)
Ranking_parcial_socios<- function(k,anios,posiciones_decimales = 2,
            pie_tabla = "Elaboración propia, con base de información del BCR."){
            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,posiciones_decimales)) %>% 
              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 = pie_tabla) 

}

APLICACION DE LA FUNCION RANKING PARCIAL

Ranking_parcial_socios(k = 10,anios = 2018:2020,pie_tabla = "Elaborado para el Parcial 1 MAE118 2022")
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