PARTE I (TEÓRICA)

  1. Explique ¿Qué significa las estructuras de datos?

Una estructura de datos es un conjunto o colección de datos en R que se organizan por su dimensión, estos pueden ser de distinto tipo. Es decir las estructuras de datos son objetos que almacenan de manera eficiente diferentes tipos de datos pueden ser del mismo tipo o de diferentes.

  1. Explique ¿Cómo se clasifican las estructuras de datos en R?

Clasificación de las Estructura de Datos

Dimensión

Homogénea

Heterogénea

1

Vector Atómico

Lista

2

Matriz

Data Frame

N

Array

 

 

Homogénea:

Cuando hablamos de Homogenea nos referimos que todos los objetos deben ser del mismo tipo,es decir albergar un solo tipo de datos sean numerico, de caracteres, cadena, etc. Tenemos:

Con una dimension al Vector Atomico: Conjunto de valores, tambien hace referencia a un agrupamiento basico de datos.

La matriz estructura de dos dimensiones, filas y columnas. Este objeto puede recuperar informacion en los elementos de la matris es deir en la interseccion de una fila y columna.

Array de n dimensiones, este sirve para guardar datos de panel que son datos de corte transversal que se recogian para varios tipo de tiempo.

Heterogénea:

En las Heterogéneas es una estructura de datos que la componen distintos tipos de datos, tenemos con una dimension la lista esta es una coleccion de estructuras que puede contener distintos tipos de datos, es decir es una carpeta que puede contener una estructura de datos de tipo vector, dataframe, matriz, array, por lo que la lista es el objeto mas geneal que se puede encontrar en R.

Data Frame es un conjunto de vectores atomicos, permite desagregar por filas y columnas. asimismo es una estructura da datos bidimensional similar a una matriz pero funciona de manera muy diferente.Por lo tanto un datafram almacena tipos de datos mixtos.

  1. Represente graficamente la instruccion anti_join(A,B)a traves de un diagrama de Venn y explique su significado práctico.

ANTI_JOIN (A, B)

Explicación: Todo lo que esta en A que no esta en B, es decir todas las filas en A que no tienen una coincidencia en B. Por lo cual identifica o filtra aquellos datos que no se encuentran en en el lado B (Dataframe) o dicho de otra manera todo lo que esta en A pero excluye todo la parte de B. Se considera que el Anti_join es el mecanismo inverso al semi_join.

PARTE II (PRACTICA)

#Carga de Base de Datos (Data)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
load("D:/Analisis eco/Sofía Lissette Mancía Chacón - 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 codigo 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(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 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, HNA=Honduras.

library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
##Creamos la tabla de GTM
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", "Exportaciones_GTM", "Importaciones_GTM")
tabla_GTM %>% mutate(ratio_GTM=Importaciones_GTM/Exportaciones_GTM)->tabla_GTM

## Creamos la Tabla de HND
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", "Exportaciones_HND", "Importaciones_HND") 
tabla_HND %>% mutate(ratio_HND=Importaciones_HND/Exportaciones_HND)->tabla_HND

##Usamos Left_join
Mi_tabla <- tabla_GTM %>% left_join(tabla_HND, by= c("anio"="anio"))

##Formato Tabla
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",digits = 2) %>%
  kable_classic(html_font = "Calibri",
                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 3

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

library(readr)
library(dplyr)
library(knitr)
library(kableExtra)

## Cargando funciones para el calculo de los indices:

source("D:/Analisis eco/funciones_comercio_exterior.R",
  echo = TRUE,
  max.deparse.length = 100,
  encoding = "utf-8"
  )
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("D:/Analisis eco/Sofía Lissette Mancía Chacón - 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]
## realizamos el calculo del indicador Balassa

resultado_balassa = data.frame("años"=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"))

#Formato de Tabla
resultado_balassa%>%head()%>%
 kable(
    caption = "Índice de Balassa: Guatemala y Honduras para el periodo 2017-2020",
    col.names = c("Año", "IB_GTM", "IB_HND"),
     align = c("c", "c", "c"),
    digits = 2
  ) %>%
  kable_classic(html_font = "Calibri",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "Fuente:",
           general = "Elaboración propia con base en datos del BCR")
Índice de Balassa: Guatemala y Honduras para el periodo 2017-2020
Año 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:
Elaboración propia con base en datos del BCR

EJERCICIO 4

Genera una función que obtenga un raking, anual de los “K” principales socios comerciales de El Salvador, para el periodo año inicio-final. Presente sus resultados en el siguiente formato:

Top K Socios comerciales, periodo año inicio-año final, datos en porcentaje de las exportaciones totales.

TEXTO PERSONALIZADO Por default debe incluir el texto: Elaboracion propia, con base en informacion del BCR. Y utiliza para generar el top 10 de socios comerciales para el periodo 2018-2020, la tabla debera tener el pie de pagina “Elaboracion para el Parcial MAE118 2022”

## Creamos la función 
top_socios_comerciales <-
  function(anios_ranking = 2018:2020,
           k = 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 = k, 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",
          k,
          "socios comerciales para el periodo de ",
          min(anios_ranking),
          "-",
          max(anios_ranking),
          ",datos en porcentaje de las exportaciones totales."
        ),
        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)
  }

#Resultado
top_socios_comerciales()
## `summarise()` has grouped output by 'anio'. You can override using the
## `.groups` argument.
Top 10 socios comerciales para el periodo de 2018 - 2020 ,datos en porcentaje de las exportaciones totales.
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% 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:
Elaboración para el Parcial 1 MAE118 2022.