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