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()
| 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