Manipulación de datraframe a través de dplyr

Uso de Select

Ejemplo 1:

Usando la base de datos de comercio exterior para El Salvador creada en la sesión anterior, seleccione las columnas de “pais”, “sac”,“anio”,“mes”,“valor_cif.

load("C:/Users/Wendy/Desktop/datos_comercio_exterior.RData")

#Cargamos paquetes
library(dplyr)
library(kableExtra)

#Seleccione las columnas de dicha base de datos 
datos_comercio_exterior %>%
  select("pais","sac","anio", "mes", "valor_cif")%>%
  head() %>% kable(caption = "Ejemplo 1") %>% kable_minimal()
Ejemplo 1
pais sac anio mes valor_cif
Afganistan 4010390000 2017 04 58.06
Afganistan 6812999090 2017 04 88.38
Afganistan 8487900000 2017 04 20.93
Afganistan 8511800000 2017 04 98.93
Afganistan 8708930000 2017 04 62.18
Afganistan 9028200000 2017 04 130.06

Uso de Filter

Ejemplo 1:

Seleccione todas las transacciones de exportación del año 2019, con Honduras o Guatemala, que sean superiores a los 100,000 US$

library(dplyr)
datos_comercio_exterior%>%
  select("pais","sac","anio", "mes", "valor_fob")  %>%
  filter(anio=="2019", pais  %in% c("Guatemala", "Honduras"), valor_fob > 100000)
## # A tibble: 2,872 × 5
##    pais      sac         anio mes   valor_fob
##    <chr>     <chr>      <dbl> <chr>     <dbl>
##  1 Guatemala 0105110000  2019 01      402629 
##  2 Guatemala 0403209000  2019 01      333543.
##  3 Guatemala 0406202000  2019 01      727621.
##  4 Guatemala 0406909000  2019 01      161111.
##  5 Guatemala 1101000000  2019 01      561071.
##  6 Guatemala 1102200000  2019 01      439248.
##  7 Guatemala 1103110000  2019 01      411861 
##  8 Guatemala 1516100000  2019 01      102949.
##  9 Guatemala 1517100000  2019 01      635279.
## 10 Guatemala 1604149000  2019 01      144881.
## # … with 2,862 more rows

Uso de Mutate

Ejemplo 1:

Calcule el saldo de la balanza comercial para todas las transacciones, disponibles en la base de comercio exterior.

datos_comercio_exterior %>% 
  mutate(saldo_bc=valor_fob-valor_cif) %>% 
  select("pais","sac","anio","mes","saldo_bc")
## # A tibble: 1,414,623 × 5
##    pais       sac         anio mes   saldo_bc
##    <chr>      <chr>      <dbl> <chr>    <dbl>
##  1 Afganistan 4010390000  2017 04       -58.1
##  2 Afganistan 6812999090  2017 04       -88.4
##  3 Afganistan 8487900000  2017 04       -20.9
##  4 Afganistan 8511800000  2017 04       -98.9
##  5 Afganistan 8708930000  2017 04       -62.2
##  6 Afganistan 9028200000  2017 04      -130. 
##  7 Afganistan 6913100000  2017 12      -650. 
##  8 Afganistan 7326209000  2017 12        -2  
##  9 Afganistan 0806200000  2018 06     -6448. 
## 10 Afganistan 6104220000  2018 10     -3153. 
## # … with 1,414,613 more rows

Ejemplo 2:

Calcule las exportaciones y las importaciones como porcentaje del comercio total, en cada transacción disponible en la base de comercio exterior, muestre sólo aquellas partidas que registren exportaciones.

options(scipen = 99999)
datos_comercio_exterior %>%
  mutate(Xpt=round(valor_fob/(valor_cif+valor_fob)*100,2),
         Mpt=round(valor_fob/(valor_cif+valor_fob)*100,2)) %>%
  select("pais","sac","anio", "mes","Xpt", "Mpt")%>% filter(Xpt>0)
## # A tibble: 329,152 × 6
##    pais       sac         anio mes     Xpt   Mpt
##    <chr>      <chr>      <dbl> <chr> <dbl> <dbl>
##  1 Afganistan 3004909100  2019 09    100   100  
##  2 Afganistan 7009920000  2021 05    100   100  
##  3 Afganistan 8302419000  2021 05    100   100  
##  4 Afganistan 8306290000  2021 05    100   100  
##  5 Afganistan 9401710000  2021 05    100   100  
##  6 Afganistan 9403200000  2021 05    100   100  
##  7 Afganistan 9403600000  2021 05    100   100  
##  8 Albania    1701140000  2019 02    100   100  
##  9 Albania    9801002000  2021 11    100   100  
## 10 Alemania   0602100000  2017 01     98.3  98.3
## # … with 329,142 more rows

Uso de Arrange

Ejemplo 1:

Ordenar los resultados del Ejemplo 2 de mutate, mostrando primero los resultados más recientes.

options(scipen = 99999)
datos_comercio_exterior %>% 
  mutate(Xpt=round(valor_fob/(valor_cif+valor_fob)*100,2),
         Mpt=round(valor_cif/(valor_cif+valor_fob)*100,2)) %>% 
  select("pais","sac","anio","mes","Xpt","Mpt") %>% 
  filter(Xpt>0) %>%
  arrange(desc(anio),desc(mes))
## # A tibble: 329,152 × 6
##    pais     sac         anio mes     Xpt   Mpt
##    <chr>    <chr>      <dbl> <chr> <dbl> <dbl>
##  1 Alemania 0409000000  2022 06    100    0   
##  2 Alemania 0901113000  2022 06    100    0   
##  3 Alemania 1604149000  2022 06    100    0   
##  4 Alemania 3808930000  2022 06    100    0   
##  5 Alemania 4202320000  2022 06    100    0   
##  6 Alemania 4202990000  2022 06    100    0   
##  7 Alemania 4417000000  2022 06    100    0   
##  8 Alemania 4819100000  2022 06     95.4  4.64
##  9 Alemania 4908900000  2022 06    100    0   
## 10 Alemania 5209390000  2022 06    100    0   
## # … with 329,142 more rows

Uso de Summarise

Ejemplo 1:

Obtenga los totales anuales de importaciones y exportaciones.

datos_comercio_exterior %>% 
  group_by(anio) %>%
  summarise(`Total Exportaciones MM US$`=sum(valor_fob)/1e6,
            `Total Importaciones MM US$`=sum(valor_cif)/1e6)
## # A tibble: 6 × 3
##    anio `Total Exportaciones MM US$` `Total Importaciones MM US$`
##   <dbl>                        <dbl>                        <dbl>
## 1  2017                        5760.                       10572.
## 2  2018                        5905.                       11464.
## 3  2019                        5905.                       11602.
## 4  2020                        5028.                       10248.
## 5  2021                        6629.                       15076.
## 6  2022                        3802.                        8934.

Ejemplo 2:

Obtenga los totales anuales de importaciones y exportaciones, que se realizan por país.

datos_comercio_exterior %>% 
  group_by(pais,anio) %>%
  summarise(`Total Exportaciones`=sum(valor_fob),
            `Total Importaciones`=sum(valor_cif))
## # A tibble: 1,207 × 4
## # Groups:   pais [241]
##    pais        anio `Total Exportaciones` `Total Importaciones`
##    <chr>      <dbl>                 <dbl>                 <dbl>
##  1 Afganistan  2017                    0                  1111.
##  2 Afganistan  2018                    0                 23573.
##  3 Afganistan  2019                  382.                13114.
##  4 Afganistan  2020                    0                  5427.
##  5 Afganistan  2021                37873.                    0 
##  6 Afganistan  2022                    0                  2366.
##  7 Albania     2017                    0                 12643.
##  8 Albania     2018                    0                 18307.
##  9 Albania     2019                51392.                25660.
## 10 Albania     2020                    0                368298.
## # … with 1,197 more rows