Select

Ejemplo 1

#Cargamos el dataframe data_comercio_exterior
load("C:/Users/Arturo/Desktop/MAE2020/Comercio/data_comercio_exterior.RData")

#Cargamos el paquete "dplyr"
library(dplyr)
library(kableExtra) #Sólo es para formato de las tablas de estos apuntes

data_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 4 58.06
Afganistan 6812999000 2017 4 88.38
Afganistan 8487900000 2017 4 20.93
Afganistan 8511800000 2017 4 98.93
Afganistan 8708930000 2017 4 62.18
Afganistan 9028200000 2017 4 130.06

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)
data_comercio_exterior %>%
  select("pais", "sac","anio","mes","valor_fob") %>%
  filter(anio=="2019", pais %in% c("Guatemala","Honduras"),valor_fob>100000)
## # A tibble: 2,889 x 5
##    pais      sac         anio   mes valor_fob
##    <chr>     <chr>      <dbl> <dbl>     <dbl>
##  1 Guatemala 0105110000  2019     1   402629 
##  2 Guatemala 0403109000  2019     1   333543.
##  3 Guatemala 0406202000  2019     1   727621.
##  4 Guatemala 0406909000  2019     1   161111.
##  5 Guatemala 1101000000  2019     1   561071.
##  6 Guatemala 1102200000  2019     1   439248.
##  7 Guatemala 1103110000  2019     1   411861 
##  8 Guatemala 1516100000  2019     1   102949.
##  9 Guatemala 1517100000  2019     1   635279.
## 10 Guatemala 1604149000  2019     1   144881.
## # ... with 2,879 more rows

Ejemplo 2: Seleccione todas las transacciones, exportación e importación, para el último trimestre de cada año disponible en el dataframe, que se han realizado con México.

data_comercio_exterior %>% 
  filter(pais=="Mexico", mes %in% 10:12) 
## # A tibble: 12,939 x 8
##    pais  sac    anio   mes valor_cif kilogramos_impo~ valor_fob kilogramos_expo~
##    <chr> <chr> <dbl> <dbl>     <dbl>            <dbl>     <dbl>            <dbl>
##  1 Mexi~ 0402~  2017    10      331.             31.2         0                0
##  2 Mexi~ 0403~  2017    10    51406.          41599.          0                0
##  3 Mexi~ 0406~  2017    10    29547.           8375.          0                0
##  4 Mexi~ 0406~  2017    10    38576.          17347.          0                0
##  5 Mexi~ 0703~  2017    10    78626.         536662           0                0
##  6 Mexi~ 0703~  2017    10     4958.          45500           0                0
##  7 Mexi~ 0703~  2017    10      545.            100           0                0
##  8 Mexi~ 0704~  2017    10     4478.           3464           0                0
##  9 Mexi~ 0705~  2017    10    10591.          10527           0                0
## 10 Mexi~ 0705~  2017    10     3931.           3430           0                0
## # ... with 12,929 more rows

Ejemplo 3: Seleccione todas las transacciones, exportación e importación, para el último trimestre de cada año disponible en el dataframe, y que excluyan el comercio con Canadá, México y Estados Unidos.

`%not_in%` <- purrr::negate(`%in%`) #esta función permite excluir los elementos que se incluyan en un vector
data_comercio_exterior %>% 
  filter(mes %in% 10:12,
         pais %not_in% c("Canada","Mexico","Estados Unidos (U.S.A.)"))
## # A tibble: 159,347 x 8
##    pais  sac    anio   mes valor_cif kilogramos_impo~ valor_fob kilogramos_expo~
##    <chr> <chr> <dbl> <dbl>     <dbl>            <dbl>     <dbl>            <dbl>
##  1 Afga~ 6913~  2017    12    650.               5.49         0                0
##  2 Afga~ 7326~  2017    12      2                0.01         0                0
##  3 Afga~ 6104~  2018    10   3153.            2408.           0                0
##  4 Afga~ 6104~  2018    10    946.             722.           0                0
##  5 Afga~ 6105~  2018    10   9405.            7181.           0                0
##  6 Afga~ 6106~  2018    10   1353.            1726.           0                0
##  7 Afga~ 6405~  2018    10   2260.            1726.           0                0
##  8 Afga~ 8206~  2018    10      6.56             5.02         0                0
##  9 Afga~ 0910~  2019    10   1821               34.9          0                0
## 10 Alba~ 3926~  2017    10     37.5            105            0                0
## # ... with 159,337 more rows

Mutate

Ejercicio 1: calcule el saldo de la balanza comercial para todas las transacciones, disponibles en la base de comercio exterior.

data_comercio_exterior %>% 
  mutate(saldo_bc=valor_fob-valor_cif)%>% 
  select("pais", "sac", "anio", "mes", "saldo_bc")
## # A tibble: 918,981 x 5
##    pais       sac         anio   mes saldo_bc
##    <chr>      <chr>      <dbl> <dbl>    <dbl>
##  1 Afganistan 4010390000  2017     4    -58.1
##  2 Afganistan 6812999000  2017     4    -88.4
##  3 Afganistan 8487900000  2017     4    -20.9
##  4 Afganistan 8511800000  2017     4    -98.9
##  5 Afganistan 8708930000  2017     4    -62.2
##  6 Afganistan 9028200000  2017     4   -130. 
##  7 Afganistan 6913100000  2017    12   -650. 
##  8 Afganistan 7326209000  2017    12     -2  
##  9 Afganistan 0806200000  2018     6  -6448. 
## 10 Afganistan 6104220000  2018    10  -3153. 
## # ... with 918,971 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)
data_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)
## # A tibble: 212,380 x 6
##    pais       sac         anio   mes   Xpt   Mpt
##    <chr>      <chr>      <dbl> <dbl> <dbl> <dbl>
##  1 Afganistan 3004909100  2019     9 100    0   
##  2 Albania    1701140000  2019     2 100    0   
##  3 Alemania   0602100000  2017     1  98.3  1.66
##  4 Alemania   0901113000  2017     1 100    0   
##  5 Alemania   3203000000  2017     1 100    0   
##  6 Alemania   3923409000  2017     1 100    0   
##  7 Alemania   4415200000  2017     1 100    0   
##  8 Alemania   4420100000  2017     1 100    0   
##  9 Alemania   5202990000  2017     1 100    0   
## 10 Alemania   5203000000  2017     1 100    0   
## # ... with 212,370 more rows

Arrange

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

options(scipen = 99999)
data_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: 212,380 x 6
##    pais     sac         anio   mes    Xpt    Mpt
##    <chr>    <chr>      <dbl> <dbl>  <dbl>  <dbl>
##  1 Alemania 0901113000  2020     7 100      0   
##  2 Alemania 0901210000  2020     7 100      0   
##  3 Alemania 1301909000  2020     7 100      0   
##  4 Alemania 1604149000  2020     7 100      0   
##  5 Alemania 2208401000  2020     7 100      0   
##  6 Alemania 3808930000  2020     7  90.4    9.65
##  7 Alemania 3901100000  2020     7 100      0   
##  8 Alemania 3926909900  2020     7   0.01 100.  
##  9 Alemania 4909000000  2020     7 100      0   
## 10 Alemania 5806200000  2020     7 100      0   
## # ... with 212,370 more rows

Arrange

Ejemplo 1: Obtenga los totales anuales de importaciones y exportaciones.

data_comercio_exterior %>% 
  group_by(anio) %>%
  summarise(`Total Exportaciones MM US$`=sum(valor_fob)/1e6,
            `Total Importaciones MM US$`=sum(valor_cif)/1e6)
## # A tibble: 4 x 3
##    anio `Total Exportaciones MM US$` `Total Importaciones MM US$`
##   <dbl>                        <dbl>                        <dbl>
## 1  2017                        5760.                       10572.
## 2  2018                        5905.                       11830.
## 3  2019                        5943.                       12018.
## 4  2020                        2662.                        5796.

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

data_comercio_exterior %>% 
  group_by(pais,anio) %>%
  summarise(`Total Exportaciones`=sum(valor_fob),
            `Total Importaciones`=sum(valor_cif))
## # A tibble: 794 x 4
## # Groups:   pais [230]
##    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 Albania     2017                    0                 12643.
##  5 Albania     2018                    0                 18307.
##  6 Albania     2019                51392.                25660.
##  7 Albania     2020                    0                115956.
##  8 Alemania    2017             24026197.            183179994.
##  9 Alemania    2018             20425283.            185817905.
## 10 Alemania    2019             21719980.            174500554.
## # ... with 784 more rows