Pregunta 1: Explique las formas de acceder al elemento “j” de una lista A que está en la posición “i” de una lista B. Nota: El elemento “j” de la lista A tiene la etiqueta “hijo” y dentro de la lista B, la lista A tiene la etiqueta “Padre”

Lista_B<-list(Padre=c("Madre",5,"Hijo",8))
Lista_B[[1]][[3]]
## [1] "Hijo"
Lista_B$Padre[3]
## [1] "Hijo"

Pregunta 2: Explique ¿Cómo se clasifican las estructuras de datos en R?

Lista_A<-data.frame("Dimensiones"=c("1","2","n"),
                    "Homogeneas"=c("Vector","Matriz","Array"),
                    "Heterogeneas"=c("Lista","Data frame","_"))
print(Lista_A)
##   Dimensiones Homogeneas Heterogeneas
## 1           1     Vector        Lista
## 2           2     Matriz   Data frame
## 3           n      Array            _
#Las estructuras de datos son objetos que contienen datos,que por sus caracteristicas podemos encontrar estructura de datos homogeneas y estructura de datos heterogeneas, ambas con 1, 2 y n numero de dimensiones.las estructuras de datos homogeneas solo pueden almacenar datos del mismo tipo, mientras que las estructuras de datos heterogenas pueden almacenar datos de distinto tipo

Pregunta 3:Represente gráficamente la instrucción rigth_join(A,B) a traves de un diagrama de Venn y explique su significado practico. Representacion grafica de left_join

#El comando left_join perdmite la union de dos data frame, la peculiaridad de letf es que mantiene todos los elementos u observaciones del data frame de la izquierda e integra el elemento del data frame de la derecha comun o que coincida con algun elemento de data frame de la izquierda..

#d.f_A left_join(d.f_B,by="elemento en comun o coincidente")
library(readr)
library(dplyr)
library(kableExtra)
library(stringr)
library(tidyr)
load("C:/Users/miguel/Desktop/Economia/MAE_2022/COMERCIO EXTERIOR/R_comercio/data_comercio_exterior.RData")

Ejercicio 1: Elabore una función que se llame totales_pais_anios,que use como argumentos el código del pais, iso de tres caracteres, para elegir el socio comercial de El Salvador, y permita conocer las Exportaciones y las Importaciones para un periodo especifico

totales_pais_anios<-function(codigo_pais,periodo){
  total_exp_total_mp<-data_comercio_exterior %>% 
                  group_by(iso_3, anio) %>% 
                  summarise(X= sum(valor_fob)/1e6, 
                            M= sum(valor_cif)/1e6)
  
  total_exp_total_mp%>% filter(codigo_pais==iso_3 , anio %in% periodo)
}

Ejemplo de uso

tabla_USA<-totales_pais_anios("USA",2017:2020)
colnames(tabla_USA)<-c("Pais", "anio", "Exportaciones_USA", "Importaciones_USA") 
tabla_USA %>% select("anio","Exportaciones_USA", "Importaciones_USA") %>% 
  kable(align = "c") %>% 
  kable_material(html_font = "sans-serif")
Pais anio Exportaciones_USA Importaciones_USA
USA 2017 2564.416 3352.811
USA 2018 2602.213 3793.431
USA 2019 2488.779 3649.125
USA 2020 1138.242 1783.499

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 Impoortaciones y Exportaciones) PAN=Panamá, BLZ=Belice

Tabla_PAN<-totales_pais_anios("PAN",2017:2020)
colnames(Tabla_PAN)<-c("Pais", "anio", "Exportaciones_PAN", "Importaciones_PAN") 
Tabla_PAN %>% mutate(ratio_PAN=Exportaciones_PAN/Importaciones_PAN)->Tabla_PAN
Tabla_BLZ<-totales_pais_anios("BLZ", 2017:2020)
colnames(Tabla_BLZ)<-c("Pais", "anio", "Exportaciones_BLZ", "Importaciones_BLZ")
Tabla_BLZ %>% mutate(ratio_BLZ=Exportaciones_BLZ/Importaciones_BLZ)->Tabla_BLZ
Tabla_PAN %>% left_join(Tabla_BLZ, by= c("anio"="anio"))->TABLA_COMPLETA
TABLA_COMPLETA %>% select("anio","Exportaciones_PAN", "Importaciones_PAN","ratio_PAN","Exportaciones_BLZ", "Importaciones_BLZ","ratio_BLZ") %>% kable(align = "c") %>% 
  kable_material(html_font = "sans-serif")
anio Exportaciones_PAN Importaciones_PAN ratio_PAN Exportaciones_BLZ Importaciones_BLZ ratio_BLZ
2017 121.76437 76.39776 1.593821 16.013380 3.9232741 4.081637
2018 122.54869 62.61247 1.957257 21.963732 0.6648215 33.037035
2019 122.09840 74.36243 1.641937 20.114436 0.4787941 42.010620
2020 60.91833 40.13965 1.517660 8.484919 0.2336319 36.317466

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

#INDICE DE BALASSA|CAPITULO|ANUAL
indicadores_Balassa_capitulo<-function(codigo_pais,
                                       capitulo,
                                       anio,
                                       normalizado=TRUE){
  enquo(codigo_pais)->codigo_pais
  enquo(anio)->anio
#exportaciones del producto k realizadas por el pais i hacia el pais j
  data_comercio_exterior %>% filter(codigo_pais==!!codigo_pais,anio==!!anio) %>% 
    mutate(capitulo=str_sub(sac,start = 1,end = 2)) %>% 
    filter(capitulo==!!capitulo) %>% 
    select(valor_fob) %>% 
    summarise(Xijt=sum(valor_fob)) %>% 
    select(Xijt)->a
#exportaciones totales del pais i al j
  data_comercio_exterior %>% 
    filter(codigo_pais==!!codigo_pais,anio==!!anio) %>% 
    select(valor_fob) %>% 
    summarise(Xijt=sum(valor_fob)) %>% 
    select(Xijt)->b
#exportaciones del producto k realizadas por el pais i hacia el mundo (w)
  data_comercio_exterior %>% 
    mutate(capitulo=str_sub(sac,start = 1,end = 2)) %>% 
    filter(capitulo==!!capitulo,anio==!!anio) %>% 
    select(valor_fob) %>% 
    summarise(Xijt=sum(valor_fob)) %>% 
    select(Xijt)->c
#exportaciones totales del pais i al mundo (w)
  data_comercio_exterior %>% 
    select(valor_fob) %>% 
    summarise(Xijt=sum(valor_fob)) %>% 
    select(Xijt)->d
  
resultado<-as.numeric((a/b)/(c/d))
ifelse(normalizado==FALSE,
       return(resultado),
       return((resultado-1)/(resultado+1)))
}
resultados_Balassa<-data.frame("anio"=2017:2020,
                               "IB_PAN"=sapply(X = 2017:2020,FUN = indicadores_Balassa_capitulo,codigo_pais=591,capitulo="01"),
                              "IB_BLZ"=sapply(X = 2017:2020,FUN = indicadores_Balassa_capitulo,codigo_pais=84,capitulo="01"))

resultados_Balassa %>% kable(align = "l") %>% 
  kable_material(html_font = "sans-serif")
anio IB_PAN IB_BLZ
2017 -0.9078344 -1
2018 -0.7275450 -1
2019 -0.8420372 -1
2020 -0.9953610 -1

Ejercicio 4: Genere 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_socios_comerciales<-function(k,anios_ranking,decimals){
data_comercio_exterior %>% 
  filter(anio %in% anios_ranking) %>% 
as.data.frame() %>% 
  group_by(anio, iso_3) %>%
  summarise(total= sum(valor_fob)) %>%
  mutate(porcentaje_exp = round(prop.table(total) * 100, decimals)) %>%
  slice_max(n = k, order_by = total) %>%
as.data.frame() %>%
  group_by(anio) %>%
  mutate(rank = row_number(),
         data = paste(iso_3, "|", porcentaje_exp, sep = "")) %>%
  select(anio, data, rank) %>%
as.data.frame() %>% 
pivot_wider(names_from = rank, values_from = data) %>%
    kable(align = "c",caption = paste("Top",k,"periodo",
                          min(anios_ranking),
                          max(anios_ranking))) %>% 
    add_footnote(label = "Elaboración propia con base en datos del BCR") %>% 
    kable_material(html_font = "sans-serif")
}
ranking_socios_comerciales(k = 5,anios_ranking = 2017:2020,decimals = 3)
Top 5 periodo 2017 2020
anio 1 2 3 4 5
2017 USA|44.521 HND|13.834 GTM|13.754 NIC|7.48 CRI|4.546
2018 USA|44.071 HND|15.339 GTM|14.36 NIC|6.875 CRI|4.39
2019 USA|41.875 GTM|15.955 HND|15.912 NIC|6.68 CRI|4.498
2020 USA|36.797 GTM|16.92 HND|15.345 NIC|7.519 CRI|5.079
a Elaboración propia con base en datos del BCR