https://rpubs.com/ca_ademir/dplyr_comercio
load("C:/Users/Eduardo/Downloads/BETO/Metodos 2020/importaciones_exportaciones/data_comercio_exterior_2.RData")
#Cargamos el paquete "dplyr"
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.6.3
##
## 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
library(kableExtra) #Sólo es para formato de las tablas de estos apuntes
## Warning: package 'kableExtra' was built under R version 3.6.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
data_comercio_exterior %>%
select("pais", "sac","anio","mes","valor_cif") %>%
head() %>% kable(caption = "Ejemplo 1") %>% kable_minimal()
| 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 |
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,988 x 5
## pais sac anio mes valor_fob
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Guatemala 0105110000 2019 1 108886.
## 2 Guatemala 0202300000 2019 1 460468.
## 3 Guatemala 0207120000 2019 1 266657.
## 4 Guatemala 0603110000 2019 1 138516.
## 5 Guatemala 0701900000 2019 1 1861870.
## 6 Guatemala 0702000000 2019 1 484976.
## 7 Guatemala 0703101200 2019 1 258420.
## 8 Guatemala 0704100000 2019 1 301069.
## 9 Guatemala 0704900000 2019 1 709192.
## 10 Guatemala 0705110000 2019 1 305408.
## # ... with 2,978 more rows
data_comercio_exterior %>%
filter(pais=="Mexico",mes %in% 10:12) # 10:12 genera el vector c(10,11,12)
## # A tibble: 12,576 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 331. 31.2
## 2 Mexi~ 0403~ 2017 10 51406. 41599. 51406. 41599.
## 3 Mexi~ 0406~ 2017 10 29547. 8375. 29547. 8375.
## 4 Mexi~ 0406~ 2017 10 38576. 17347. 38576. 17347.
## 5 Mexi~ 0703~ 2017 10 78626. 536662 78626. 536662
## 6 Mexi~ 0703~ 2017 10 4958. 45500 4958. 45500
## 7 Mexi~ 0703~ 2017 10 545. 100 545. 100
## 8 Mexi~ 0704~ 2017 10 4478. 3464 4478. 3464
## 9 Mexi~ 0705~ 2017 10 10591. 10527 10591. 10527
## 10 Mexi~ 0705~ 2017 10 3931. 3430 3931. 3430
## # ... with 12,566 more rows
library(purrr) #librería necesaria para la función personalizada `%not_in%`
## Warning: package 'purrr' was built under R version 3.6.3
`%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: 129,481 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 650. 5.49
## 2 Afga~ 7326~ 2017 12 2 0.01 2 0.01
## 3 Afga~ 6104~ 2018 10 3153. 2408. 3153. 2408.
## 4 Afga~ 6104~ 2018 10 946. 722. 946. 722.
## 5 Afga~ 6105~ 2018 10 9405. 7181. 9405. 7181.
## 6 Afga~ 6106~ 2018 10 1353. 1726. 1353. 1726.
## 7 Afga~ 6405~ 2018 10 2260. 1726. 2260. 1726.
## 8 Afga~ 8206~ 2018 10 6.56 5.02 6.56 5.02
## 9 Afga~ 0910~ 2019 10 1821 34.9 1821 34.9
## 10 Alba~ 3926~ 2017 10 37.5 105 37.5 105
## # ... with 129,471 more rows
data_comercio_exterior %>%
mutate(saldo_bc=valor_fob-valor_cif) %>%
select("pais","sac","anio","mes","saldo_bc")
## # A tibble: 769,937 x 5
## pais sac anio mes saldo_bc
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Afganistan 4010390000 2017 4 0
## 2 Afganistan 6812999000 2017 4 0
## 3 Afganistan 8487900000 2017 4 0
## 4 Afganistan 8511800000 2017 4 0
## 5 Afganistan 8708930000 2017 4 0
## 6 Afganistan 9028200000 2017 4 0
## 7 Afganistan 6913100000 2017 12 0
## 8 Afganistan 7326209000 2017 12 0
## 9 Afganistan 0806200000 2018 6 0
## 10 Afganistan 6104220000 2018 10 0
## # ... with 769,927 more rows
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: 769,937 x 6
## pais sac anio mes Xpt Mpt
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Afganistan 4010390000 2017 4 50 50
## 2 Afganistan 6812999000 2017 4 50 50
## 3 Afganistan 8487900000 2017 4 50 50
## 4 Afganistan 8511800000 2017 4 50 50
## 5 Afganistan 8708930000 2017 4 50 50
## 6 Afganistan 9028200000 2017 4 50 50
## 7 Afganistan 6913100000 2017 12 50 50
## 8 Afganistan 7326209000 2017 12 50 50
## 9 Afganistan 0806200000 2018 6 50 50
## 10 Afganistan 6104220000 2018 10 50 50
## # ... with 769,927 more rows
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: 769,937 x 6
## pais sac anio mes Xpt Mpt
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Albania 2106907900 2020 7 50 50
## 2 Albania 3004909100 2020 7 50 50
## 3 Alemania 0402911000 2020 7 50 50
## 4 Alemania 0602100000 2020 7 50 50
## 5 Alemania 0602909000 2020 7 50 50
## 6 Alemania 1107100000 2020 7 50 50
## 7 Alemania 1107200000 2020 7 50 50
## 8 Alemania 1108130000 2020 7 50 50
## 9 Alemania 1109000000 2020 7 50 50
## 10 Alemania 1302191000 2020 7 50 50
## # ... with 769,927 more rows
data_comercio_exterior %>%
group_by(anio) %>%
summarise(`Total Exportaciones MM US$`=sum(valor_fob)/1e6,
`Total Importaciones MM US$`=sum(valor_cif)/1e6)
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 4 x 3
## anio `Total Exportaciones MM US$` `Total Importaciones MM US$`
## <dbl> <dbl> <dbl>
## 1 2017 10572. 10572.
## 2 2018 11830. 11830.
## 3 2019 12018. 12018.
## 4 2020 5796. 5796.
data_comercio_exterior %>%
group_by(pais,anio) %>%
summarise(`Total Exportaciones`=sum(valor_fob),
`Total Importaciones`=sum(valor_cif))
## `summarise()` regrouping output by 'pais' (override with `.groups` argument)
## # A tibble: 763 x 4
## # Groups: pais [228]
## pais anio `Total Exportaciones` `Total Importaciones`
## <chr> <dbl> <dbl> <dbl>
## 1 Afganistan 2017 1111. 1111.
## 2 Afganistan 2018 23573. 23573.
## 3 Afganistan 2019 13114. 13114.
## 4 Albania 2017 12643. 12643.
## 5 Albania 2018 18307. 18307.
## 6 Albania 2019 25660. 25660.
## 7 Albania 2020 115956. 115956.
## 8 Alemania 2017 183179994. 183179994.
## 9 Alemania 2018 185817905. 185817905.
## 10 Alemania 2019 174500554. 174500554.
## # ... with 753 more rows