library(foreign)
library(dplyr)
##
## 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(stringr)
ruta <- "Exportaciones"
enero <- read.dta(paste(ruta, "Enero.dta", sep = "/"))
febrero <- read.dta(paste(ruta, "Febrero.dta", sep = "/"))
marzo <- read.dta(paste(ruta, "Marzo.dta", sep = "/"))
abril <- read.dta(paste(ruta, "Abril.dta", sep = "/"))
mayo <- read.dta(paste(ruta, "Mayo.dta", sep = "/"))
junio <- read.dta(paste(ruta, "Junio.dta", sep = "/"))
julio <- read.dta(paste(ruta, "Julio.dta", sep = "/"))
agosto <- read.dta(paste(ruta, "Agosto.dta", sep = "/"))
septiembre <- read.dta(paste(ruta, "Septiembre.dta", sep = "/"))
octubre <- read.dta(paste(ruta, "Octubre.dta", sep = "/"))
noviembre <- read.dta(paste(ruta, "Noviembre.dta", sep = "/"))
diciembre <- read.dta(paste(ruta, "Diciembre.dta", sep = "/"))
export <- rbind(enero, febrero, marzo, abril, mayo, junio, julio, agosto,
septiembre, octubre, noviembre, diciembre)
rm(enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre,
noviembre, diciembre, ruta)
names(export) <- names(export) %>% tolower()
names(export)[15] <- "posicion_arancelaria"
df_vias <- data.frame(cod = 1:9, vía = c("MARITIMO", "FERREO", "TERRESTRE",
"AEREO", "CORREO", "MULTIMODAL",
"INSTALACIONES DE TRANSPORTE FIJAS (TUBERIAS, CABLE, ETC.)",
"VIAS NAVEGABLES INTERIORES", "OTRO MODO DE TRANSPORTE"))
df_vias$vía <- df_vias$vía %>% str_to_title()
df_puestos_control <- data.frame(cod = c("AXM", "BAQ", "BOG", "BGA",
"CLO", "CTG", "CUC", "MZL",
"MDE", "PEI", "SMR", "RCH",
"ADZ", "AUC", "BUN", "CAR",
"IPI", "LET", "MAI", "TCO",
"TRB", "PCR", "INI", "YOP",
"PUU", "VUP", "PA_", "CVE", "MAM"),
lugar = c("ARMENIA", "BARRANQUILLA", "BOGOTA", "BUCARAMANGA", "CALI",
"CARTAGENA", "CUCUTA", "MANIZALES", "MEDELLIN", "PEREIRA",
"SANTA MARTA", "RIOHACHA", "SAN ANDRES", "ARAUCA",
"BUENAVENTURA", "CARTAGO", "IPIALES", "LETICIA", "MAICAO",
"TUMACO", "URABA", "PUERTO CARRENO", "INIRIDA", "YOPAL",
"PUERTO ASIS", "VALLEDUPAR", "PAMPLONA", "OLEODUCTO COVEÑAS",
"MAMONAL"))
df_puestos_control$lugar <- df_puestos_control$lugar %>% str_to_title()
df_cap27 <- data.frame(partida_arancelaria = c("2701", "2702", "2703", "2704",
"2705", "2706", "2707", "2708", "2709", "2710", "2711",
"2712", "2713", "2714", "2715", "2716"),
descripcion = c("Hulla (carbón); briquetas y combustibles sólidos similares",
"Lignitos, incluso aglomerados (excepto azabache)",
"Turba, incluso aglomerada",
"Coques y semicoques de hulla, lignito o turba; carbón de retorta",
"Gas de hulla, gas de agua, gas pobre y gases similares",
"Alquitranes de hulla, lignito o turba y demás alquitranes minerales",
"Aceites y productos de la destilación de alquitranes de hulla de alta temperatura",
"Brea y coque de brea de alquitrán de hulla u otros alquitranes minerales",
"Aceites crudos de petróleo o de mineral bituminoso",
"Aceites de petróleo, excepto crudos (refinados); preparaciones n.e.p.",
"Gas de petróleo y demás hidrocarburos gaseosos",
"Vaselina; parafina, ceras de petróleo y demás ceras minerales",
"Coque de petróleo, betún de petróleo y demás residuos de aceites de petróleo",
"Betunes y asfaltos naturales; pizarras y arenas bituminosas; rocas asfálticas",
"Mezclas bituminosas a base de asfalto o betún naturales, de petróleo, etc.",
"Energía eléctrica"))
posicion_arancelaria_chr <- export$posicion_arancelaria %>% str_pad(width = 10,
side = "left",
pad = "0")
capitulo <- str_sub(posicion_arancelaria_chr, 1, 2)
partida_arancelaria <- str_sub(posicion_arancelaria_chr, 1, 4)
fob27 <- export %>%
mutate(partida_arancelaria = posicion_arancelaria %>%
str_pad(width = 10, side = "left", pad = "0") %>%
str_sub(start = 1, end = 4)) %>%
filter(str_starts(partida_arancelaria, "27")) %>%
group_by(partida_arancelaria) %>%
summarise(fob = round(sum(as.numeric(fobdol), na.rm = TRUE) / 1e6, 2), .groups = "drop") %>%
arrange(desc(fob))
## Warning: There were 13 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `fob = round(sum(as.numeric(fobdol), na.rm = TRUE)/1e+06, 2)`.
## ℹ In group 1: `partida_arancelaria = "2701"`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 12 remaining warnings.
energia <- fob27 %>%
left_join(df_cap27, by = "partida_arancelaria") %>%
select(partida = partida_arancelaria, descripcion, fobdol = fob)
knitr::kable(energia, caption = "Exportación de energía en millones de dolares FOB")
Exportación de energía en millones de dolares FOB
| 2709 |
Aceites crudos de petróleo o de mineral bituminoso |
2395.86 |
| 2701 |
Hulla (carbón); briquetas y combustibles sólidos
similares |
990.49 |
| 2710 |
Aceites de petróleo, excepto crudos (refinados);
preparaciones n.e.p. |
449.34 |
| 2704 |
Coques y semicoques de hulla, lignito o turba; carbón
de retorta |
232.41 |
| 2716 |
Energía eléctrica |
113.60 |
| 2713 |
Coque de petróleo, betún de petróleo y demás residuos
de aceites de petróleo |
57.12 |
| 2712 |
Vaselina; parafina, ceras de petróleo y demás ceras
minerales |
3.18 |
| 2707 |
Aceites y productos de la destilación de alquitranes de
hulla de alta temperatura |
0.68 |
| 2714 |
Betunes y asfaltos naturales; pizarras y arenas
bituminosas; rocas asfálticas |
0.62 |
| 2715 |
Mezclas bituminosas a base de asfalto o betún
naturales, de petróleo, etc. |
0.59 |
| 2706 |
Alquitranes de hulla, lignito o turba y demás
alquitranes minerales |
0.28 |
| 2711 |
Gas de petróleo y demás hidrocarburos gaseosos |
0.03 |
| 2708 |
Brea y coque de brea de alquitrán de hulla u otros
alquitranes minerales |
0.02 |
| 2702 |
Lignitos, incluso aglomerados (excepto azabache) |
0.01 |
| 2703 |
Turba, incluso aglomerada |
0.00 |
petroleo <- c("2709","2710","2711")
salida <- sum(fob27[names(fob27) %in% petroleo])
salida <- fob27 %>%
filter(partida_arancelaria %in% petroleo) %>%
summarise(total = sum(fob)) %>%
pull(total)
cat("Exportaciones petróleo: ", salida, "millones de dólares.")
## Exportaciones petróleo: 2845.23 millones de dólares.
temporales <- c(2, 4, 201, 202, 301:310, 403, 701)
export <- export %>% filter(!(modad %in% temporales))
res_xvia <- export %>%
group_by(via) %>%
summarise(exportaciones = round(sum(as.numeric(fobdol), na.rm = TRUE) / 1e6, 2))
## Warning: There were 10 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `exportaciones = round(sum(as.numeric(fobdol), na.rm =
## TRUE)/1e+06, 2)`.
## ℹ In group 1: `via = 0`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 9 remaining warnings.
names(res_xvia) <- names(res_xvia) %>% tolower()
res_xvia$via <- res_xvia$via %>% as.integer()
res_xvia <- res_xvia %>% left_join(df_vias, by = c("via" = "cod")) %>%
relocate(vía, .after = via) %>%
select(-via)
res_xvia$prop <- res_xvia$exportaciones %>% proportions()*100
res_xvia$prop <- res_xvia$prop %>% round(2)
salida <- res_xvia %>% arrange(desc(exportaciones))
names(salida) <- names(salida) %>% str_to_title()
knitr::kable(salida, caption = "Exportaciones por vía de salida. Millones de dólares FOB.")
Exportaciones por vía de salida. Millones de dólares
FOB.
| NA |
7551.26 |
64.60 |
| Aereo |
1425.23 |
12.19 |
| Ferreo |
922.82 |
7.89 |
| Multimodal |
641.38 |
5.49 |
| Maritimo |
576.25 |
4.93 |
| Vias Navegables Interiores |
564.62 |
4.83 |
| Correo |
6.71 |
0.06 |
| Terrestre |
0.88 |
0.01 |
| Instalaciones De Transporte Fijas (Tuberias, Cable,
Etc.) |
0.00 |
0.00 |
| Otro Modo De Transporte |
0.00 |
0.00 |
maritima <- export %>% filter(via == 1) %>%
group_by(cod_sal) %>%
summarise(exportaciones = round(sum(as.numeric(fobdol), na.rm = TRUE) / 1e6, 2))
## Warning: There were 13 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `exportaciones = round(sum(as.numeric(fobdol), na.rm =
## TRUE)/1e+06, 2)`.
## ℹ In group 1: `cod_sal = "AXM"`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 12 remaining warnings.
maritima <- maritima %>% left_join(df_puestos_control, by = c("cod_sal" = "cod"))
maritima$prop <- maritima$exportaciones %>% proportions()*100
maritima$prop <- maritima$prop %>% round(2)
salida <- maritima %>% relocate(lugar) %>%
arrange(desc(exportaciones))
names(salida) <- names(salida) %>% str_to_title()
knitr::kable(salida, caption = "Puertos de salida maritimos. Millones de dólares FOB.")
Puertos de salida maritimos. Millones de dólares FOB.
| Santa Marta |
SMR |
121.61 |
21.10 |
| Cartagena |
CTG |
114.80 |
19.92 |
| Riohacha |
RCH |
76.22 |
13.23 |
| Bogota |
BOG |
71.08 |
12.34 |
| Barranquilla |
BAQ |
65.73 |
11.41 |
| Medellin |
MDE |
57.95 |
10.06 |
| Buenaventura |
BUN |
39.81 |
6.91 |
| Cali |
CLO |
17.26 |
3.00 |
| Uraba |
TRB |
11.06 |
1.92 |
| Bucaramanga |
BGA |
0.49 |
0.09 |
| Pereira |
PEI |
0.22 |
0.04 |
| Armenia |
AXM |
0.01 |
0.00 |
| Tumaco |
TCO |
0.00 |
0.00 |
aerea <- export %>% filter(via == 4) %>%
group_by(cod_sal) %>%
summarise(exportaciones = round(sum(as.numeric(fobdol), na.rm = TRUE) / 1e6, 2))
## Warning: There were 16 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `exportaciones = round(sum(as.numeric(fobdol), na.rm =
## TRUE)/1e+06, 2)`.
## ℹ In group 1: `cod_sal = "BAQ"`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 15 remaining warnings.
aerea <- aerea %>% left_join(df_puestos_control, by = c("cod_sal" = "cod"))
aerea$prop <- aerea$exportaciones %>% proportions()*100
aerea$prop <- aerea$prop %>% round(2)
salida <- aerea %>% select(-cod_sal) %>% relocate(lugar) %>%
arrange(desc(exportaciones))
names(salida) <- names(salida) %>% str_to_title()
knitr::kable(salida, caption = "Puertos de salida aéreos. Millones de dólares FOB.")
Puertos de salida aéreos. Millones de dólares FOB.
| Buenaventura |
442.31 |
31.03 |
| Santa Marta |
328.27 |
23.03 |
| Cartagena |
321.72 |
22.57 |
| Bogota |
105.55 |
7.41 |
| Barranquilla |
94.77 |
6.65 |
| Riohacha |
83.37 |
5.85 |
| Uraba |
34.47 |
2.42 |
| Medellin |
12.09 |
0.85 |
| Cali |
1.91 |
0.13 |
| Ipiales |
0.67 |
0.05 |
| Maicao |
0.06 |
0.00 |
| Bucaramanga |
0.04 |
0.00 |
| Cucuta |
0.00 |
0.00 |
| Leticia |
0.00 |
0.00 |
| Pereira |
0.00 |
0.00 |
| Tumaco |
0.00 |
0.00 |