#carga de datos

load("C:/Users/pc/Downloads/data_comercio_exterior_actualizada.RData")
source(file = "C:/Users/pc/Downloads/funciones_comercio_exterior.R")

PARTE 1 ## explique ¿qué son las estructuras de datos?

## son las colecciones o conjunto de datos en r,(Formas en que se almacenan los datos) se organizan por su dimension y si son homogéneas o heteroéneas 

##Explique ¿como se clasifican las estructuras de datos?

## tienen dos clasificaciones de acuerdo a su dimension(una, dos o varias dimesiones) y si son homogeneas o heterogeneas, en las homogéneas todos los elementos son del mismo tipo, las heterogéneas los elementos dentro de su estructura son de diferentes tipos
#Homogéneas: vector atomico, matriz, array.
#heterogéneas: Listas, data frame.

##Represente graficamente la intruccion anti_join(A,B) atraves de un diagrama de Venn y explique su significado practico ##

#el anti_join sirve para unir auna tabla con otra sin seleccionar los elementos comunes con la otra tabla, ejemplo: tenemos una tabla A y una B,aplicamos anti_join(A,B) nos unira y presentara los elementos que estan en a pero no se encuentran en B  

anti_join(A,B)

PARTE 2 #EJERCICIO 1: Hacer una funcion que se llame totales_pais_anios que use como argumentos el codigo del pais iso de tres caracteres, para el 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(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(codigo== iso_3 , anio %in% periodo)
}

#EJERCICIO 2: usando la funcion creada en el ejerccio 1 y los comandos que sean necesarios, genere la siguiente tabla:( nota ratio es el cociente entre Importaciones y Exportaciones) GTM= Guatemala, HND= Honduras

tabla_HND<-totales_pais_anios("HND",2017:2020)
## `summarise()` has grouped output by 'iso_3'. You can override using the
## `.groups` argument.
colnames(tabla_HND)<-c("Pais", "anio", "Exp_HND", "Imp_HND") 

tabla_HND %>% mutate(ratio_HND=Imp_HND/Exp_HND)->tabla_HND

tabla_GTM<-totales_pais_anios("GTM", 2017:2020)
## `summarise()` has grouped output by 'iso_3'. You can override using the
## `.groups` argument.
colnames(tabla_GTM)<-c("Pais", "anio", "Exp_GTM", "Imp_GTM")
tabla_GTM %>% mutate(ratio_GTM=Imp_GTM/Exp_GTM)->tabla_GTM

tabla_HND %>% left_join(tabla_GTM, by= c("anio"="anio")) ->mi_tabla

mi_tabla %>% select("anio","Exp_HND", "Imp_HND","ratio_HND","Exp_GTM", "Imp_GTM","ratio_GTM")
## # A tibble: 4 × 7
##    anio Exp_HND Imp_HND ratio_HND Exp_GTM Imp_GTM ratio_GTM
##   <dbl>   <dbl>   <dbl>     <dbl>   <dbl>   <dbl>     <dbl>
## 1  2017   1594.   1167.     0.732   1584.   2092.      1.32
## 2  2018   1811.   1462.     0.807   1696.   2309.      1.36
## 3  2019   1877.   1618.     0.862   1881.   2533.      1.35
## 4  2020   1553.   1334.     0.859   1697.   2424.      1.43

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

library(kableExtra)
## Warning in !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output
## %in% : 'length(x) = 3 > 1' in coercion to 'logical(1)'
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
capitulo<-"01"
data.frame("años"=2018:2020,
"IB_Guatemala"=sapply(X=2018:2020,FUN = indicadores_Balassa_capitulo,codigo_pais=320,capitulo=capitulo),  "IB_Honduras"=sapply(X=2018:2020,FUN=indicadores_Balassa_capitulo,codigo_pais=340,capitulo=capitulo))%>%
head() %>% kable(caption = "Balassa Version Nueva") %>% kable_minimal() %>% 
  add_footnote(label="Elaboración propia con base en datos del BCR",notation="symbol") %>%  kable_styling(bootstrap_options = "striped",full_width = TRUE)
Balassa Version Nueva
años IB_Guatemala IB_Honduras
2018 0.9093569 0.1149491
2019 0.9003127 -0.0076163
2020 0.9183771 0.3837457
* Elaboración propia con base en datos del BCR

#4 genera una funicon 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: y utilizala para generar el top 10 de socios comerciales para el eriodo 2018-2020, la tabla debera tener el pie de pagina “Elaborado para el Parcial 1 MAE118 2022”

top_socios_comerciales <-
  function(anios_ranking = 2018:2020,
           numero_socios = 10,
           posiciones_decimales = 2,
           titulo_pie_tabla = "Fuente:",
           pie_tabla = "Elaboración para el Parcial 1 MAE118 2022") {
    
    #Filtro Años Requeridos
    data_comercio_exterior %>%
      filter(anio %in% anios_ranking) -> data_ranking
    
    #Cálculo de Porcentajes
    data_ranking %>%
      group_by(anio, iso_3) %>%
      summarise(total = sum(valor_fob)) %>%
      mutate(percent = round(prop.table(total) * 100, posiciones_decimales)) %>%
      slice_max(n = numero_socios, 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
    names(insumo_reporte) <- c("Año", "Data", "Rank")
    
    #Formato Tabla original
    library(tidyr)
    insumo_reporte %>%
      pivot_wider(names_from = Rank, values_from = Data) -> mi_tabla
    
    #Formato Tabla Final
    library(kableExtra)
    mi_tabla %>%
      kable(
        caption = paste(
          "Top",
          numero_socios,
          "de Exportaciones Periodo",
          min(anios_ranking),
          "-",
          max(anios_ranking),
          "."
        ),
        align = "c"
      ) %>%
      kable_classic(html_font = "Times New Roman",
                    font_size = 14) %>%
      column_spec(1, bold = T) %>%
      row_spec(0, bold = T, color = "black") %>%
      footnote(general_title = titulo_pie_tabla,
               general = pie_tabla)
  }
top_socios_comerciales()
## `summarise()` has grouped output by 'anio'. You can override using the
## `.groups` argument.
Top 10 de Exportaciones Periodo 2018 - 2020 .
Año 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% NA|3.02% MEX|2.44% PAN|2.09% DOM|1.65% ESP|0.82%
2019 USA|42.04% GTM|15.92% HND|15.9% NIC|6.66% CRI|4.46% MEX|2.54% NA|2.37% PAN|2.03% DOM|1.75% CAN|1.09%
2020 USA|39.25% GTM|16.87% HND|15.45% NIC|7.25% CRI|4.63% NA|3.99% MEX|2.47% PAN|1.87% DOM|1.78% DEU|0.72%
Fuente:
Elaboración para el Parcial 1 MAE118 2022