library(dplyr)
library(knitr)
library(kableExtra)
library(readxl)
load("E:/Jese Carpeta/R/Tareas/A14/data_comercio_exterior.RData")
data_comercio_exterior |>
filter(anio %in% 2018:2020) -> data_1
data_1 |>
head(10) |>
kable(caption = "Tabla 1. Datos de comercio exterior 2018-2020",
align = "c") |>
add_footnote(label = "Elaboración propia con base en datos del BCR.",
notation = 'none')| pais | sac | anio | mes | valor_cif | kilogramos_importaciones | valor_fob | kilogramos_exportaciones |
|---|---|---|---|---|---|---|---|
| Afganistan | 0806200000 | 2018 | 6 | 6448.43 | 1463.92 | 0 | 0 |
| Afganistan | 6104220000 | 2018 | 10 | 3153.37 | 2407.61 | 0 | 0 |
| Afganistan | 6104620000 | 2018 | 10 | 946.01 | 722.28 | 0 | 0 |
| Afganistan | 6105100000 | 2018 | 10 | 9405.39 | 7181.03 | 0 | 0 |
| Afganistan | 6106100000 | 2018 | 10 | 1353.32 | 1725.55 | 0 | 0 |
| Afganistan | 6405900000 | 2018 | 10 | 2260.03 | 1725.55 | 0 | 0 |
| Afganistan | 8206000000 | 2018 | 10 | 6.56 | 5.02 | 0 | 0 |
| Afganistan | 6404110000 | 2019 | 2 | 7752.13 | 6748.03 | 0 | 0 |
| Afganistan | 6405100000 | 2019 | 2 | 508.03 | 442.24 | 0 | 0 |
| Afganistan | 6405900000 | 2019 | 2 | 12.45 | 10.85 | 0 | 0 |
Note: Elaboración propia con base en datos del BCR.
master_paises_iso <- read_excel("E:/Jese Carpeta/R/Tareas/A14/master_paises_iso.xlsx")
data_1 |>
left_join(master_paises_iso,
by = c("pais"="nom_pais_esp")) -> data_2
data_2 |>
head(10) |>
kable(caption = "Tabla 2. Datos de comercio exterior 2018-2020, ISO",
align = "c") |>
add_footnote(label = "Elaboración propia con base en datos del BCR.",
notation = 'none')| pais | sac | anio | mes | valor_cif | kilogramos_importaciones | valor_fob | kilogramos_exportaciones | nom_pais_ingles | iso_2 | iso_3 | codigo_pais…5 | codigo_pais…6 | region | cod_region | sub_region | cod_sub_region | region_intermedia | cod_region_intermedia | …13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Afganistan | 0806200000 | 2018 | 6 | 6448.43 | 1463.92 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6104220000 | 2018 | 10 | 3153.37 | 2407.61 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6104620000 | 2018 | 10 | 946.01 | 722.28 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6105100000 | 2018 | 10 | 9405.39 | 7181.03 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6106100000 | 2018 | 10 | 1353.32 | 1725.55 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6405900000 | 2018 | 10 | 2260.03 | 1725.55 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 8206000000 | 2018 | 10 | 6.56 | 5.02 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6404110000 | 2019 | 2 | 7752.13 | 6748.03 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6405100000 | 2019 | 2 | 508.03 | 442.24 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
| Afganistan | 6405900000 | 2019 | 2 | 12.45 | 10.85 | 0 | 0 | Afghanistan | AF | AFG | 4 | Asia | 142 | Asia Meridional | 34 | NA | NA | Asia | 142 |
Note: Elaboración propia con base en datos del BCR.
# Definición de función
tabla_top_k_html <- function(
df_comercio,
top_k=5,
anios_rank,
decimales,
pie_pagina="Fuente: Elaboración propia, con base en información del BCR."
){
library(dplyr)
library(tidyr)
df_comercio |>
filter(anio %in% anios_rank) |>
group_by(anio,iso_3) |>
summarize(total=sum(valor_fob)) |>
mutate(percent=round(prop.table(total)*100,decimales)) |>
slice_max(n=top_k,order_by = total) |>
as.data.frame() |>
group_by(anio) |>
mutate(rank=row_number(),
data=paste(iso_3,"|",percent,sep = "")) |>
select(anio,data,rank) |>
as.data.frame() |>
rename(`Año`=anio) |>
pivot_wider(names_from = rank,
values_from = data) |>
as.data.frame() |>
kable(caption = paste("Top",top_k,"Socios comerciales, periodo",
min(anios_rank),"-",max(anios_rank),
"datos en porcentaje de las exportaciones totales.",
sep = " ")) |>
add_footnote(label = pie_pagina, notation = 'none')
}# Aplicando la función
tabla_top_k_html(df_comercio = data_2,
anios_rank = 2018:2020,
top_k = 5,
decimales = 2)| Año | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 2018 | USA|44.07 | HND|15.34 | GTM|14.36 | NIC|6.87 | CRI|4.39 |
| 2019 | USA|41.88 | GTM|15.95 | HND|15.91 | NIC|6.68 | CRI|4.5 |
| 2020 | USA|35.73 | GTM|16.9 | HND|15.21 | NIC|7.65 | CRI|5.21 |
Note: Fuente: Elaboración propia, con base en información del BCR.