UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMÍA
CICLO II - 2026
Escudo de la Universidad
“Interfaz de Programación de Aplicaciones (API) y el Análisis de Comercio Exterior: El Caso de UN Comtrade a través de R”
Asignatura:
Métodos para el análisis Económico
Grupo teórico:
Gt 01
Docente:
Jeffry Isaac Bonilla Melara
Integrantes:
Castro Pérez, Luz Imelda CP24023
García Ramírez, Carlos Roberto GR16051
Guzmán Alvarado, María del Carmen GA24021
Lara Molina, Saira Sofía LM24007
Martínez Rivera, Ena Heyssell MR23064
Ciudad Universitaria, 13 de septiembre de 2026

Introducción

En el marco del análisis económico actual, la disponibilidad de datos precisos y actualizados es fundamental para la toma de decisiones y el diseño de políticas públicas. Tradicionalmente, la recolección de estadísticas sobre el comercio global requería la descarga manual de extensas bases de datos, un proceso propenso a errores y metodológicamente ineficiente en términos de tiempo y uso de recursos. No obstante, el desarrollo tecnológico ha masificado el uso de Interfaces de Programación de Aplicaciones (Application Programming Interface, en inglés, de donde provienen sus siglas, API), las cuales actúan como puentes de comunicación directa entre servidores institucionales y los entornos de programación locales Amazon Web Services [AWS], s.f.. En el ámbito de la ciencia de datos aplicada a la economía, las APIs han transformado los flujos de trabajo al permitir la extracción automatizada, reproducible y en tiempo real de indicadores macroeconómicos y concretamente para nuestra API asignada, flujos comerciales globales (RPubs,2024), en terminos de intercambio internacional de bienes y servicios.

El estudio del comercio exterior es un pilar crítico para entender la inserción de las economías en las cadenas globales de valor, los balances comerciales y las ventajas comparativas intermitentes. Para este propósito, la base de datos Comtrade de las Naciones Unidas constituye el repositorio más completo de estadísticas de comercio internacional de mercancías y servicios a nivel mundial (Bochtler et al., 2023). A través del entorno de programación R y mediante el uso específico del paquete comtradr, es posible interactuar directamente con la API de UN Comtrade, facilitando la descarga de matrices de datos tabulares limpios y estructurados de forma inmediata para su procesamiento estadístico y visualización (CRAN, 2025).

Esta investigación y exposición académica tiene como objetivo principal analizar el funcionamiento técnico y conceptual de las APIs económicas, centrando la atención en las capacidades operativas de la API de Comercio Exterior de las Naciones Unidas. Para ello, el estudio no solo aborda el marco teórico que fundamenta el intercambio automatizado de información bajo arquitecturas REST, sino que despliega una evaluación empírica de la dinámica comercial de El Salvador con sus principales socios estratégicos durante el periodo 2020-2024. A lo largo del desarrollo, se examinan mediante ejemplos prácticos en R la evolución de productos tradicionales de agroexportación, las dependencias de bienes tecnológicos y farmacéuticos provenientes de Estados Unidos, y la inserción de las exportaciones de la República Popular China en el bloque de mercados centroamericanos. De este modo, se ilustra el potencial de estas herramientas automatizadas para la investigación económica contemporánea, robusta y reproducible.

1. Conceptos Generales de las APIs

1.1. ¿Qué es una API?

Una API (por sus siglas en inglés, Application Programming Interface o interfaz de programación de aplicaciones) es un conjunto de reglas o protocolos que permiten que las aplicaciones de software se comuniquen entre sí para intercambiar datos, características y funcionalidades (Goodwin, 2024).

Amazon Web Services (s.f.) explica el concepto de forma similar, señalando que las API son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos, y utiliza el ejemplo de una aplicación meteorológica del teléfono que “conversa” con el sistema del instituto de meteorología para mostrar información actualizada al usuario.

¿Cómo funciona una API?

El funcionamiento de una API suele describirse mediante el modelo cliente-servidor:

  • El cliente es la aplicación que realiza la solicitud (por ejemplo, una app en el teléfono o un sitio web).
  • El servidor es el sistema que recibe la solicitud, la procesa y devuelve una respuesta.
  • La API actúa como intermediaria, estableciendo las reglas de esa comunicación (Amazon Web Services, s.f.).

Goodwin (2024) ilustra este proceso con el ejemplo del pago en línea con PayPal: cuando el usuario hace clic en el botón de pago, se genera una solicitud a través de la API, que incluye un verbo de solicitud, una cabecera y, en ocasiones, un cuerpo de datos; el servidor de pagos procesa la solicitud y envía la respuesta de vuelta, todo esto de forma invisible para el usuario, quien solo percibe una conexión fluida entre ambos sistemas.

Un elemento clave es la documentación de la API, que funciona como un manual de instrucciones técnicas que explica cómo trabajar con la API y sus servicios, y que resulta fundamental para que los desarrolladores puedan integrarla correctamente en sus propios sistemas (Goodwin, 2024).

1.2. Tipos de APIs

Según su arquitectura (protocolo)

API REST (Representational State Transfer)

REST es actualmente el tipo de API más popular y flexible que existe en la web (Amazon Web Services, s.f.). Sus características principales son:

  • Sin estado (stateless): los servidores no guardan los datos del cliente entre solicitudes.
  • Uso de HTTP: emplea verbos como GET, POST, PUT y DELETE para interactuar con los recursos, identificados mediante URI únicos (Goodwin, 2024).
  • Formatos flexibles: admite JSON, XML, HTML y texto plano, aunque JSON es el más común (Goodwin, 2024).
  • Arquitectura en capas y cliente-servidor independiente, lo que facilita el mantenimiento (Defranchi, 2026).

Gracias a estas propiedades, REST se ha convertido en el estándar de facto para aplicaciones web modernas como Netflix, Uber o Amazon (Defranchi, 2026).

API SOAP (Simple Object Access Protocol)

SOAP es un protocolo que utiliza XML para el intercambio de mensajes entre cliente y servidor y que fue el primero en estandarizar la forma en que las aplicaciones debían usar conexiones de red para gestionar servicios, desde finales de los años noventa (Defranchi, 2026). A diferencia de REST, SOAP:

  • Es más rígido y requiere mayor cantidad de código para completar cada tarea (Goodwin, 2024).
  • Cuenta con seguridad y cumplimiento normativo integrados, lo que lo hace atractivo para sectores con altos requisitos de integridad de datos, como el financiero o el gubernamental (Goodwin, 2024).
  • Es considerado una opción “pesada” en términos de tráfico de datos, aunque todavía vigente en integraciones empresariales heredadas (legacy) y sectores regulados (Defranchi, 2026).

En síntesis, mientras REST prioriza la simplicidad y la flexibilidad, SOAP prioriza el control estricto y la seguridad, por lo que la elección entre ambos depende del contexto de uso (Goodwin, 2024).

Según el ámbito o tipo de acceso

Las API también se clasifican según su audiencia o alcance de acceso, principalmente en cuatro categorías (Defranchi, 2026; Goodwin, 2024):

API públicas (o abiertas)

Son interfaces de código abierto a las que se puede acceder mediante el protocolo HTTP, también conocidas como API públicas, con endpoints y formatos de solicitud y respuesta definidos. Suelen requerir registro o una clave de API, aunque el acceso general está disponible para cualquier desarrollador externo (Defranchi, 2026). Un ejemplo es el portal de datos abiertos de la NASA, que permite a desarrolladores externos consumir información astronómica de forma pública (Defranchi, 2026).

API privadas (o internas)

Permanecen ocultas para los usuarios externos y solo son utilizadas dentro de la organización para conectar sistemas y datos internos. Su propósito es mejorar la productividad y la reutilización de servicios entre distintos equipos de desarrollo de una misma empresa (Defranchi, 2026; Goodwin, 2024).

API de socios (partner)

Estas API conectan a socios de negocio estratégicos, quienes normalmente acceden a ellas en modo de autoservicio a través de un portal de desarrolladores, pero deben completar un proceso de incorporación y obtener credenciales (Goodwin, 2024). A diferencia de las públicas, no están abiertas a cualquier persona, sino a terceros previamente autorizados. Un ejemplo son las API de banca abierta (open banking), que permiten a bancos conectarse con proveedores fintech de forma segura y regulada (Defranchi, 2026).

API compuestas

Como categoría adicional, tanto Amazon Web Services (s.f.) como Goodwin (2024) señalan las API compuestas, que combinan múltiples API de datos o servicios, permitiendo a los programadores acceder a varios endpoints en una sola llamada, siendo particularmente útiles en arquitecturas de microservicios donde una sola tarea requiere información de distintas fuentes.

1.3. Importancia del uso de APIs en el análisis económico

El análisis económico depende en gran medida de la disponibilidad, actualización y calidad de los datos (indicadores macroeconómicos, tipos de cambio, precios de mercado, tasas de interés, comercio exterior, etc.). Las API son relevantes en este campo por varias razones que se derivan directamente de los beneficios generales que ofrecen, señalados por Amazon Web Services (s.f.) y Goodwin (2024):

1. Acceso a datos en tiempo real

Muchas instituciones económicas y financieras (bancos centrales, bolsas de valores, organismos multilaterales como el Banco Mundial o el FMI) publican API públicas que permiten obtener series de tiempo económicas actualizadas automáticamente. Esto elimina la necesidad de descargar y actualizar manualmente hojas de cálculo, y permite que los modelos de análisis trabajen con la información más reciente disponible.

2. Integración de múltiples fuentes de información

Amazon Web Services (s.f.) señala que las API permiten integrar nuevas aplicaciones con sistemas de software existentes, aumentando la velocidad de desarrollo porque no es necesario escribir cada funcionalidad desde cero. Aplicado al análisis económico, esto significa que un analista puede combinar datos de comercio, empleo, inflación y mercados financieros provenientes de distintas plataformas dentro de un mismo modelo o panel de indicadores, sin depender de la carga manual de archivos.

3. Automatización y eficiencia

Goodwin (2024) destaca que las API permiten a las empresas automatizar los flujos de trabajo y mejorar la colaboración. En el contexto económico, esto se traduce en la posibilidad de automatizar la actualización de bases de datos, la generación de reportes periódicos y la alimentación continua de modelos econométricos o de pronóstico, reduciendo el margen de error humano y el tiempo de procesamiento.

4. Escalabilidad y toma de decisiones ágil

La capacidad de ampliar el uso de datos hacia distintas plataformas —lo que Amazon Web Services (s.f.) denomina “ampliación”— permite que instituciones financieras, gobiernos y empresas construyan sistemas de alerta temprana, tableros de control (dashboards) económicos y modelos de riesgo que se actualizan de forma continua a partir de fuentes externas conectadas vía API.

5. Democratización y transparencia de la información económica

El acceso a API públicas de datos (como las de bancos centrales o portales de datos abiertos) facilita que investigadores, estudiantes y analistas independientes —no solo grandes instituciones— puedan acceder a información económica confiable sin costos elevados, favoreciendo la transparencia y la investigación económica aplicada (Defranchi, 2026).

En conjunto, las API se han convertido en una infraestructura tecnológica esencial para el análisis económico moderno, ya que permiten transformar datos dispersos en insumos estructurados, actualizados y accesibles para la toma de decisiones.

2. UN Comtrade y el paquete comtradr

2.1. ¿Qué es UN Comtrade?

UN Comtrade es la base de datos oficial de estadísticas de comercio internacional de las Naciones Unidas, administrada por la División de Estadística de la ONU (UNSD). Contiene información detallada sobre importaciones, exportaciones y reexportaciones de bienes entre países, cubriendo tanto flujos comerciales históricos como actuales. Cada año, cerca de 200 países y territorios envían sus estadísticas nacionales de comercio, las cuales son estandarizadas por la UNSD y luego incorporadas a la base, categorizadas por producto (bajo distintos sistemas de clasificación) y por país socio comercial. El sistema contiene datos anuales desde 1962 y datos mensuales desde el año 2000, con más de mil millones de registros acumulados, lo que la convierte en la base de datos de comercio internacional más completa disponible públicamente, representando más del 99% del comercio mundial de mercancías. Todos los valores se expresan en dólares estadounidenses, convertidos según los tipos de cambio reportados por cada país, y es utilizada ampliamente por gobiernos, universidades, institutos de investigación y empresas, e incluso alimenta otras plataformas de datos como FAOSTAT (CBS Library, s.f.).

2.2. Ubicación y clasificación de la API de UN Comtrade

Según arquitectura, la API de UN Comtrade es de tipo REST (RESTful) y no SOAP. Se documenta formalmente mediante el estándar OpenAPI, el cual define de forma legible por máquina la estructura de los endpoints, los parámetros de entrada y los formatos de respuesta, facilitando tanto la integración manual como el consumo por agentes automatizados. Técnicamente se gestiona sobre Azure API Management, a través del Developer Portal (comtradedeveloper.un.org), donde el usuario puede explorar el catálogo completo de productos y endpoints disponibles, probarlos de forma interactiva desde el navegador antes de integrarlos en código, y consultar ejemplos de uso para casos como la descarga de archivos en bloque. Las respuestas se entregan en JSON por defecto sin necesidad de especificar el parámetro format, aunque también admite CSV y TXT cuando se solicita explícitamente, características típicas de una arquitectura REST orientada a recursos y ausentes en SOAP, que exige un contrato WSDL y mensajes XML estrictos (UN Comtrade Developer Portal, s.f.).

Según acceso, la API es híbrida entre Pública y Partner, sin evidencia de un nivel estrictamente Privado. El componente Público se refleja en que cualquier persona puede registrarse de forma autoservicio con una cuenta B2C (usando incluso una cuenta de Gmail o de dominio institucional un.org), completar una verificación por correo electrónico, y obtener sin costo una llave de suscripción al producto “comtrade - v1”; existe incluso un nivel de vista previa sin registro alguno. El componente Partner aparece en los niveles institucionales superiores (“Premium Institutional Pro”), donde el acceso no se autogestiona sino que se negocia caso por caso escribiendo a , definiendo el tipo de suscripción (Individual, Pro 1, Pro 2) y el método de pago, pudiendo habilitarse el acceso por dominio de correo institucional de la organización contratante (Shop UN, s.f.).

2.3. Acceso y modelos de uso

2.3.1. Distinción entre APIs gratuitas y Premium

UN Comtrade estructura su oferta en varios productos escalonados dentro del mismo Developer Portal, no en una simple dicotomía binaria. Existen dos productos gratuitos (una vista previa pública sin registro y un nivel “registrado” con llave gratuita) y varios productos de pago: “Premium Trial” (evaluación temporal con límite de tasa diario restrictivo), y niveles institucionales superiores como “Premium Individual” y “Premium Institutional Pro”, este último pensado para organizaciones con múltiples usuarios bajo un mismo dominio. En todos los niveles, incluyendo los pagados, sigue siendo obligatorio solicitar una llave de suscripción específica para el producto correspondiente en el Developer Portal, ya que la API es el único canal para extraer datos mediante programación, independientemente de que el usuario ya cuente con acceso premium a la interfaz web (UNSD, s.f.-a).

2.3.2. Plan gratuito vs. plan pagado

En el plan gratuito registrado, el límite documentado es de 500 llamadas por día con un máximo de 100,000 registros por llamada, lo que en la práctica permite descargar hasta 50 millones de registros diarios si se agotan las 500 llamadas al tope de registros permitido; este nivel requiere registro gratuito y llave de suscripción activa. Existe además un nivel sin registro ni llave, con llamadas ilimitadas por día pero limitadas a apenas 500 registros por llamada, pensado solo para exploración y pruebas rápidas. Los planes de pago (Premium Trial, Premium Individual, Premium Pro 1/2, Premium Institucional Pro) elevan tanto el número de llamadas diarias permitidas como el techo de registros por consulta, además de habilitar funcionalidades adicionales como la descarga asíncrona por lotes y acceso prioritario a datos en vista previa, pero sus cifras exactas dependen del contrato específico negociado con la ONU (Bochtler et al., 2023).

2.4. Obtención de la API Key y configuración en R

Para obtener la llave, primero se debe crear una cuenta B2C en comtradeplus.un.org o en el Developer Portal, ingresando un correo válido y verificándolo mediante un código enviado por email; una vez creada la cuenta, se navega a la página de productos del Developer Portal, se selecciona el producto correspondiente (por ejemplo, “comtrade - v1” para el nivel gratuito) y se solicita la suscripción, la cual puede tardar en aprobarse. Cuando el estado de la suscripción cambia a “Active”, la llave primaria queda disponible en la sección de perfil del portal. En R, el paquete comtradr ofrece dos rutas para registrar esa llave: en sesiones interactivas existe una función que guarda el token en el archivo de entorno de la sesión actual, mientras que en sesiones no interactivas puede registrarse manualmente con una función base de R como Sys.setenv(‘COMTRADE_PRIMARY’ = ‘xxxxxxxxxxxxxxxxx’); para que la llave persista entre sesiones y no deba reintroducirse cada vez, se recomienda añadir esa misma variable de entorno directamente al archivo .Renviron del proyecto (Bochtler et al., 2023).

2.5. Limitaciones técnicas de la API

Además de los topes diarios de llamadas y registros por consulta ya mencionados, la API impone restricciones adicionales sobre la velocidad y el alcance temporal de las consultas. Para los suscriptores premium existe un límite explícito de 5 llamadas por segundo por usuario, diseñado para prevenir abusos del sistema y preservar la calidad del servicio para el resto de usuarios; el paquete comtradr, por su parte, implementa un mecanismo de auto-throttling que espacía automáticamente las llamadas del usuario para no exceder los límites de Comtrade, aunque sus propios mantenedores señalan que no existe documentación oficial clara sobre el límite exacto de consultas por minuto, por lo que el paquete usa un valor configurable por defecto (parámetro requests_per_second, ajustable según el token empleado). En cuanto al alcance temporal, cada consulta individual admite un rango máximo de doce años para datos anuales y de solo un año para datos mensuales, obligando a fraccionar consultas de series más largas en múltiples llamadas; para quienes necesiten volúmenes mayores sin fraccionar tanto, existe además una modalidad de descarga masiva (ct_get_bulk) que entrega archivos comprimidos pre-empaquetados por país reportante y año, distinta del endpoint de consulta estándar y pensada específicamente para evitar las restricciones de la consulta interactiva (Bochtler et al., 2023).

2.6. El paquete comtradr en R

comtradr es el paquete oficial en R para interactuar con la API de UN Comtrade, publicado y mantenido en CRAN y en el repositorio de la organización rOpenSci, cuyo objetivo es simplificar el ciclo completo de autenticación, consulta, y procesamiento de los datos de comercio sin que el usuario deba construir manualmente las URLs de la API. Es mantenido principalmente por Paul Bochtler, junto con Harriet Goers y Chris Muir como coautores, se distribuye bajo licencia GPL-3, y fue sometido a un proceso formal de revisión por pares dentro de rOpenSci, con Alicia Schep, Rafael Hellwig, Ernest Guevarra y Nicholas Potter como revisores. El paquete ha tenido una reescritura importante de su arquitectura interna, que introdujo funcionalidades de caché de resultados (con una viñeta dedicada y variables de entorno para configurarla), la función ct_get_bulk() para el sistema de descarga masiva, y ajustes en las funciones principales para validar los parámetros antes de enviar la solicitud a la API. Entre sus funciones más usadas están ct_get_data() para consultas estándar, ct_get_bulk() para descargas masivas, ct_commodity_lookup() y ct_country_lookup() para traducir nombres de productos o países a los códigos que exige la API, ct_search() como función de búsqueda más flexible, ct_get_ref_table() para obtener tablas de referencia (como catálogos de países o clasificaciones), y set_primary_comtrade_key() junto con ct_register_token() para la gestión de la llave de acceso; el paquete también incluye una función citation(“comtradr”) para obtener la referencia bibliográfica correcta al usarlo en trabajos académicos (CRAN, 2025).

3. Muestra de Datos

# Carga de librerias
library(comtradr)
library(dplyr)
library(knitr)
library(kableExtra)
library(tidyr)
library(tidyverse)
library(plotly)

# Configurar clave API
comtradr::set_primary_comtrade_key("5e20cde9b8ef4d71aa0715a9886b1051")
datos <- comtradr::ct_get_data(
  reporter = "SLV",
  partner = "all_countries",
  commodity_code = "TOTAL",
  start_date = 2020,
  end_date = 2024,
  frequency = "A",
  )
 # una fila de ejemplo por cada año
muestra <- datos %>%
  group_by(ref_year) %>%
  slice(1) %>%
  ungroup()

knitr::kable(head(datos, 10))
type_code freq_code ref_period_id ref_year ref_month period reporter_code reporter_iso reporter_desc flow_code flow_desc partner_code partner_iso partner_desc partner2code partner2iso partner2desc classification_code classification_search_code is_original_classification cmd_code cmd_desc aggr_level is_leaf customs_code customs_desc mos_code mot_code mot_desc qty_unit_code qty_unit_abbr qty is_qty_estimated alt_qty_unit_code alt_qty_unit_abbr alt_qty is_alt_qty_estimated net_wgt is_net_wgt_estimated gross_wgt is_gross_wgt_estimated cifvalue fobvalue primary_value legacy_estimation_flag is_reported is_aggregate
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 4 AFG Afghanistan 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 5426.74 0 5426.74 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 8 ALB Albania 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 368297.55 0 368297.55 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 12 DZA Algeria 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 179245.57 0 179245.57 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 16 ASM American Samoa 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 8210.40 0 8210.40 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 20 AND Andorra 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 TRUE 0 FALSE 2241094.76 0 2241094.76 4 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 28 ATG Antigua and Barbuda 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 1508.86 0 1508.86 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 32 ARG Argentina 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 TRUE 0 FALSE 55162294.10 0 55162294.10 4 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 36 AUS Australia 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 5235047.22 0 5235047.22 0 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 40 AUT Austria 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 TRUE 0 FALSE 9690929.50 0 9690929.50 4 FALSE TRUE
C A 20200101 2020 52 2020 222 SLV El Salvador M Import 44 BHS Bahamas 0 W00 World H5 HS TRUE TOTAL All Commodities 0 FALSE C00 TOTAL CPC 0 0 TOTAL MOT -1 N/A 0 FALSE -1 N/A 0 FALSE 0 FALSE 0 FALSE 143.30 0 143.30 0 FALSE TRUE

4. Ejemplos prácticos.

A continuación se presentan seis casos prácticos en R (comtradr) para extraer, procesar y visualizar flujos comerciales de UN Comtrade. La sección 4.1 realiza las descargas base vía API para sustentar los análisis de los numerales 4.2 al 4.7.

4.1 Extracción de datos mediante la API de UN Comtrade.

# Descarga Global 1: El Salvador + Socios Directos + Productos Clave (2020-2024)
capitulos_slv <- sprintf("%02d", c(1:24, 27, 30, 39, 48, 61, 62, 72, 84, 85, 87))
codigos_especificos <- c("TOTAL", "0901", "1701", "6109", "2710", "1005", "3004", "8471")

df_slv_productos_global <- ct_get_data(
  reporter       = "SLV",
  partner        = c("USA", "GTM", "HND", "NIC", "CRI", "MEX", "CHN", "World"),
  commodity_code = c(codigos_especificos, capitulos_slv),
  flow_direction = c("export", "import"),
  frequency      = "A",
  start_date     = "2020",
  end_date       = "2024"
)

# Descarga Global 2: China hacia Centroamérica
df_china_ca_general <- ct_get_data(
  reporter       = "CHN",
  flow_direction = "export",
  partner        = c("SLV", "GTM", "HND", "NIC", "CRI", "PAN"),
  commodity_code = capitulos_slv,
  start_date     = "2020",
  end_date       = "2024",
  frequency      = "A"
)

4.2 Panorama Comercial de El Salvador con sus Socios Directos (2022–2024).

Analisis1_ElSalvador_Socios <- df_slv_productos_global %>% 
  filter(
    ref_year %in% c(2022, 2023, 2024),
    cmd_code == "TOTAL",
    partner_desc %in% c("Guatemala", "Honduras", "Nicaragua", "Costa Rica", "USA", "Mexico", "China")
  ) %>% 
  select(
    Anio       = ref_year,
    Cod_Rep    = reporter_code,
    Declarante = reporter_desc,
    Cod_Part   = partner_code,
    Destino    = partner_desc,
    Cod_HS     = any_of(c("cmd_code", "commodity_code", "cmdCode")),
    Flujo      = flow_desc,
    Valor      = primary_value
  ) %>% 
  mutate(Flujo = tolower(Flujo)) %>% 
  group_by(Anio, Cod_Rep, Declarante, Cod_Part, Destino, Cod_HS, Flujo) %>% 
  summarise(Valor = sum(Valor, na.rm = TRUE), .groups = "drop") %>% 
  pivot_wider(names_from = Flujo, values_from = Valor) %>% 
  rename_with(~"Exportaciones", contains("export")) %>% 
  rename_with(~"Importaciones", contains("import")) %>% 
  mutate(
    Exportaciones = paste0("$ ", format(coalesce(Exportaciones, 0), big.mark = ",", scientific = FALSE)),
    Importaciones = paste0("$ ", format(coalesce(Importaciones, 0), big.mark = ",", scientific = FALSE))
  ) %>% 
  select(Anio, Cod_Rep, Declarante, Cod_Part, Destino, Cod_HS, Exportaciones, Importaciones) %>% 
  arrange(Destino, Anio)

Analisis1_ElSalvador_Socios %>% 
  kable(
    align = c("c", "c", "l", "c", "l", "c", "r", "r"),
    col.names = c("Año", "Cód. Rep", "Declarante", "Cód. Part", "Destino", "Cód. HS", "Exportaciones (USD)", "Importaciones (USD)"),
    caption = "Tabla 4.2: Panorama Comercial de El Salvador con sus Socios Directos (2022–2024)"
  ) %>% 
  kable_classic(html_font = "Times New Roman", font_size = 12) %>% 
  footnote(
    general = c(
      "Códigos M49 ONU asignados a cada socio comercial. Código HS 'TOTAL' indica agregado general.",
      "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R."
    ),
    general_title = ""
  ) %>% 
  kable_styling(full_width = F, position = "center")
Tabla 4.2: Panorama Comercial de El Salvador con sus Socios Directos (2022–2024)
Año Cód. Rep Declarante Cód. Part Destino Cód. HS Exportaciones (USD) Importaciones (USD)
2022 222 El Salvador 156 China TOTAL $ 47,497,585 $ 2,846,910,358
2023 222 El Salvador 156 China TOTAL $ 11,312,777 $ 2,384,541,440
2024 222 El Salvador 156 China TOTAL $ 52,819,667 $ 2,652,489,252
2022 222 El Salvador 188 Costa Rica TOTAL $ 303,491,139 $ 368,146,366
2023 222 El Salvador 188 Costa Rica TOTAL $ 311,230,769 $ 416,713,962
2024 222 El Salvador 188 Costa Rica TOTAL $ 297,400,351 $ 444,694,919
2022 222 El Salvador 320 Guatemala TOTAL $ 1,213,276,504 $ 1,695,597,154
2023 222 El Salvador 320 Guatemala TOTAL $ 1,198,586,883 $ 1,583,850,573
2024 222 El Salvador 320 Guatemala TOTAL $ 1,232,561,364 $ 1,539,943,117
2022 222 El Salvador 340 Honduras TOTAL $ 1,184,754,339 $ 960,383,113
2023 222 El Salvador 340 Honduras TOTAL $ 1,059,182,596 $ 788,709,294
2024 222 El Salvador 340 Honduras TOTAL $ 1,018,836,976 $ 738,293,447
2022 222 El Salvador 484 Mexico TOTAL $ 188,870,736 $ 1,395,484,079
2023 222 El Salvador 484 Mexico TOTAL $ 220,221,317 $ 1,282,777,744
2024 222 El Salvador 484 Mexico TOTAL $ 258,778,932 $ 1,330,893,986
2022 222 El Salvador 558 Nicaragua TOTAL $ 496,734,066 $ 439,358,876
2023 222 El Salvador 558 Nicaragua TOTAL $ 509,787,860 $ 488,636,328
2024 222 El Salvador 558 Nicaragua TOTAL $ 564,197,057 $ 493,708,082
2022 222 El Salvador 842 USA TOTAL $ 2,792,395,433 $ 5,103,975,703
2023 222 El Salvador 842 USA TOTAL $ 2,339,341,087 $ 4,496,740,262
2024 222 El Salvador 842 USA TOTAL $ 2,164,992,774 $ 4,398,738,422
Códigos M49 ONU asignados a cada socio comercial. Código HS ‘TOTAL’ indica agregado general.
Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.

4.3 Principales Productos de Exportación de El Salvador por Socio Comercial (2020–2024).

anios_req <- as.character(2020:2024)

# Paso 1: sumar el total exportado de cada producto (código HS) por socio, en todo el período 2020-2024
Analisis4_Totales_Producto <- df_slv_productos_global %>% 
  filter(
    flow_desc %in% c("Export", "export"),
    partner_desc %in% c("USA", "Guatemala", "Honduras", "Nicaragua", "China"),
    cmd_code %in% capitulos_slv
  ) %>% 
  select(Socio = partner_desc, Cod_HS = cmd_code, Valor = primary_value) %>% 
  group_by(Socio, Cod_HS) %>% 
  summarise(Total = sum(Valor, na.rm = TRUE), .groups = "drop")

# Paso 2: quedarnos solo con los 3 productos más exportados a cada socio
Analisis4_Top3_Productos <- Analisis4_Totales_Producto %>% 
  group_by(Socio) %>% 
  slice_max(order_by = Total, n = 3) %>% 
  select(Socio, Cod_HS)

# Paso 3: recuperar el valor exportado de esos productos, pero ahora año por año
Analisis4_Evolucion_Top3 <- df_slv_productos_global %>% 
  filter(
    flow_desc %in% c("Export", "export"),
    partner_desc %in% c("USA", "Guatemala", "Honduras", "Nicaragua", "China")
  ) %>% 
  select(Anio = period, Socio = partner_desc, Cod_HS = cmd_code, Producto = cmd_desc, Valor = primary_value) %>% 
  inner_join(Analisis4_Top3_Productos, by = c("Socio", "Cod_HS")) %>% 
  mutate(Anio = as.character(Anio)) %>% 
  group_by(Socio, Cod_HS, Producto, Anio) %>% 
  summarise(Valor_MM = round(sum(Valor, na.rm = TRUE) / 1e6, 2), .groups = "drop")

# Paso 4: acortar nombres de producto muy largos y pasar los años de filas a columnas
Analisis4_Tabla <- Analisis4_Evolucion_Top3 %>% 
  mutate(Producto = ifelse(nchar(Producto) > 35, paste0(substr(Producto, 1, 32), "..."), Producto)) %>% 
  pivot_wider(names_from = Anio, values_from = Valor_MM, values_fill = 0)

# Paso 5: dar formato final de tabla
Analisis4_Tabla %>% 
  select(Socio, Cod_HS, Producto, all_of(anios_req)) %>% 
  mutate(across(all_of(anios_req), ~ paste0("$ ", format(round(., 2), big.mark = ",", nsmall = 2)))) %>% 
  kable(
    align = c("l", "c", "l", rep("r", length(anios_req))),
    col.names = c("Socio Comercial", "Cód.", "Producto Líder", anios_req),
    caption = "Tabla 4.3: Principales Productos de Exportación de El Salvador por Socio Comercial (2020–2024, MM USD)"
  ) %>% 
  kable_classic(html_font = "Times New Roman", font_size = 10) %>% 
  collapse_rows(columns = 1, valign = "middle") %>% 
   footnote(
    general = "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.",
    general_title = ""
  ) %>% 
  kable_styling(full_width = F, position = "center")
Tabla 4.3: Principales Productos de Exportación de El Salvador por Socio Comercial (2020–2024, MM USD)
Socio Comercial Cód. Producto Líder 2020 2021 2022 2023 2024
China 17 Sugars and sugar confectionery $ 47.27 $ 54.00 $ 41.09 $ 0.00 $ 38.55
61 Apparel and clothing accessories… $ 1.10 $ 2.57 $ 3.67 $ 7.44 $ 8.70
85 Electrical machinery and equipme… $ 0.42 $ 0.20 $ 0.26 $ 0.44 $ 1.69
Guatemala 27 Mineral fuels, mineral oils and … $ 45.13 $ 75.37 $ 115.93 $ 139.49 $ 112.38
39 Plastics and articles thereof $ 104.44 $ 132.59 $ 163.01 $ 141.74 $ 155.61
48 Paper and paperboard; articles o… $ 72.02 $ 89.12 $ 104.77 $ 96.37 $ 104.93
Honduras 39 Plastics and articles thereof $ 90.34 $ 121.61 $ 143.99 $ 127.56 $ 129.56
48 Paper and paperboard; articles o… $ 71.74 $ 97.91 $ 113.88 $ 100.73 $ 86.82
61 Apparel and clothing accessories… $ 133.79 $ 224.88 $ 252.22 $ 207.14 $ 192.78
Nicaragua 27 Mineral fuels, mineral oils and … $ 47.09 $ 71.54 $ 74.72 $ 66.65 $ 67.47
39 Plastics and articles thereof $ 48.94 $ 62.07 $ 68.88 $ 64.59 $ 66.37
48 Paper and paperboard; articles o… $ 24.07 $ 29.72 $ 37.90 $ 42.50 $ 57.78
USA 61 Apparel and clothing accessories… $ 1,160.06 $ 1,593.10 $ 1,646.59 $ 1,388.56 $ 1,240.64
62 Apparel and clothing accessories… $ 143.28 $ 167.62 $ 154.04 $ 122.10 $ 91.33
85 Electrical machinery and equipme… $ 180.49 $ 298.94 $ 317.28 $ 231.18 $ 193.08
Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.

4.4 Evolución de Café, Azúcar y Textiles en las Exportaciones de El Salvador al Mundo (2020–2024).

anios_cols <- as.character(2020:2024)

# Paso 1: filtrar solo exportaciones hacia "World" (mundo, agregado global) de los 3 productos clave
Analisis5_Filtrado <- df_slv_productos_global %>% 
  filter(
    flow_desc %in% c("Export", "export"),
    partner_desc == "World",
    cmd_code %in% c("0901", "1701", "6109")
  ) %>% 
  select(Anio = period, Cod_SH = cmd_code, Descripcion = cmd_desc, Destino = partner_desc, Valor = primary_value)

# Paso 2: ponerle nombre común a cada código HS y convertir el valor a millones de USD
Analisis5_Base <- Analisis5_Filtrado %>% 
  mutate(
    Anio = as.character(Anio),
    Producto = case_when(
      Cod_SH == "0901" ~ "Café",
      Cod_SH == "1701" ~ "Azúcar",
      Cod_SH == "6109" ~ "Textiles (Camisetas)"
    ),
    Valor_MM = round(Valor / 1e6, 2)
  )

# Paso 3: sumar el valor por producto y año (por si hay más de un registro para la misma combinación)
Analisis5_Productos <- Analisis5_Base %>% 
  group_by(Cod_SH, Descripcion, Destino, Producto, Anio) %>% 
  summarise(Valor_MM = sum(Valor_MM, na.rm = TRUE), .groups = "drop")

# Paso 4: pasar los años de filas a columnas y dar formato final de tabla
Analisis5_Productos %>% 
  pivot_wider(names_from = Anio, values_from = Valor_MM, values_fill = 0) %>% 
  select(Cod_SH, Descripcion, Destino, Producto, all_of(anios_cols)) %>% 
  mutate(across(all_of(anios_cols), ~ paste0("$ ", format(round(., 2), big.mark = ",", nsmall = 2)))) %>% 
  kable(
    align = c("c", "l", "c", "l", rep("r", length(anios_cols))),
    col.names = c("Cód. SH", "Descripción Oficial Completa (HS)", "Destino", "Producto", anios_cols),
    caption = "Tabla 4.4: Evolución de Café, Azúcar y Textiles en las Exportaciones de El Salvador al Mundo (2020–2024, MM USD)"
  ) %>% 
  kable_classic(html_font = "Times New Roman", font_size = 9.5) %>% 
  column_spec(2, width = "16em") %>% 
   footnote(
    general = "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.",
    general_title = ""
  ) %>% 
  kable_styling(full_width = F, position = "center")
Tabla 4.4: Evolución de Café, Azúcar y Textiles en las Exportaciones de El Salvador al Mundo (2020–2024, MM USD)
Cód. SH Descripción Oficial Completa (HS) Destino Producto 2020 2021 2022 2023 2024
0901 Coffee, whether or not roasted or decaffeinated; husks and skins; coffee substitutes containing coffee in any proportion World Café $ 92.56 $ 111.10 $ 176.98 $ 147.11 $ 137.12
1701 Cane or beet sugar and chemically pure sucrose, in solid form World Azúcar $ 179.39 $ 222.18 $ 229.32 $ 235.70 $ 241.26
6109 T-shirts, singlets and other vests; knitted or crocheted World Textiles (Camisetas) $ 566.04 $ 742.27 $ 819.15 $ 695.59 $ 589.24
Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.
# Paso 1: convertir el año a número (para el eje X) y armar el texto del tooltip
Analisis6_Grafico <- Analisis5_Productos %>% 
  mutate(
    Anio_Num = as.numeric(Anio),
    Texto_Tooltip = paste0(
      "<b>Producto:</b> ", Producto, "<br>",
      "<b>Destino:</b> ", Destino, "<br>",
      "<b>Año:</b> ", Anio, "<br>",
      "<b>Monto:</b> $", format(Valor_MM, big.mark = ","), " MM USD"
    )
  )

# Paso 2: construir el gráfico de líneas (un producto = una línea, con color fijo por producto)
p2 <- ggplot(Analisis6_Grafico, aes(x = Anio_Num, y = Valor_MM, color = Producto, group = Producto, text = Texto_Tooltip)) +
  geom_line(linewidth = 1.2) +
  geom_point(size = 2.5) +
  scale_color_manual(values = c("Café" = "#8B4513", "Azúcar" = "#E69F00", "Textiles (Camisetas)" = "#0072B2")) +
  scale_x_continuous(breaks = as.numeric(anios_cols)) +
  scale_y_continuous(labels = scales::comma) +
  labs(title = "Gráfico 4.4 Café, Azúcar y Textiles — Exportaciones de El Salvador al Mundo (2020–2024)", x = "Año", y = "Millones de USD", color = "Producto") +
  theme_minimal(base_family = "Times New Roman")

# Paso 3: hacer el gráfico interactivo (zoom, tooltip al pasar el mouse)
ggplotly(p2, tooltip = "text")

4.5 Evolución de las Principales Exportaciones Chinas hacia Centroamérica (2020–2024, MM USD).

# Paso 1: sumar por país, producto y año
Analisis8_Anual <- df_china_ca_general %>% 
  select(Pais = partner_desc, Cod_SH = cmd_code, Descripcion = cmd_desc, Anio = period, Valor = primary_value) %>% 
  mutate(Anio = as.character(Anio)) %>% 
  group_by(Pais, Cod_SH, Descripcion, Anio) %>% 
  summarise(Valor_MM = round(sum(Valor, na.rm = TRUE) / 1e6, 2), .groups = "drop")

# Paso 2: calcular el total del período (2020-2024) para identificar el top 3 real por país
Analisis8_Totales <- Analisis8_Anual %>% 
  group_by(Pais, Cod_SH, Descripcion) %>% 
  summarise(Total_MM = sum(Valor_MM, na.rm = TRUE), .groups = "drop") %>% 
  group_by(Pais) %>% 
  slice_max(order_by = Total_MM, n = 3) %>% 
  select(Pais, Cod_SH)

# Paso 3: recuperar el detalle año por año, solo para esos productos top 3
Analisis8_Tabla <- Analisis8_Anual %>% 
  inner_join(Analisis8_Totales, by = c("Pais", "Cod_SH")) %>% 
  pivot_wider(names_from = Anio, values_from = Valor_MM, values_fill = 0) %>% 
  arrange(Pais, desc(`2024`))

# Paso 4: mostrar la tabla final
Analisis8_Tabla %>% 
  mutate(across(all_of(anios_req), ~ paste0("$ ", format(., big.mark = ",")))) %>% 
  kable(
    align = c("l", "c", "l", rep("r", length(anios_req))),
    col.names = c("País Destino", "Cód. SH", "Producto", anios_req),
    caption = "Tabla 4.5: Evolución de las Principales Exportaciones Chinas hacia Centroamérica (2020–2024, MM USD)"
  ) %>% 
  kable_classic(html_font = "Times New Roman", font_size = 9.5) %>% 
  column_spec(3, width = "22em", extra_css = "white-space: normal; word-wrap: break-word;") %>% 
  collapse_rows(columns = 1, valign = "middle") %>% 
  footnote(
    general = c(
      "Dato reportado por China; equivale a lo que cada país centroamericano importó.",
      "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R."
    ),
    general_title = ""
  ) %>% 
  kable_styling(full_width = F, position = "center")
Tabla 4.5: Evolución de las Principales Exportaciones Chinas hacia Centroamérica (2020–2024, MM USD)
País Destino Cód. SH Producto 2020 2021 2022 2023 2024
Costa Rica 85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 298.35 $ 399.61 $ 454.89 $ 553.36 $ 672.47
87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof $ 85.32 $ 149.07 $ 230.94 $ 440.47 $ 585.92
72 Iron and steel $ 112.24 $ 350.71 $ 235.81 $ 278.82 $ 342.58
El Salvador 84 Machinery and mechanical appliances, boilers, nuclear reactors; parts thereof $ 0.00 $ 0.00 $ 180.15 $ 190.95 $ 224.16
39 Plastics and articles thereof $ 76.82 $ 134.61 $ 210.04 $ 150.80 $ 209.02
85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 150.05 $ 170.68 $ 178.04 $ 205.74 $ 190.26
84 Nuclear reactors, boilers, machinery and mechanical appliances; parts thereof $ 92.64 $ 143.66 $ 0.00 $ 0.00 $ 0.00
Guatemala 85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 300.66 $ 424.27 $ 468.31 $ 487.76 $ 593.18
87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof $ 185.04 $ 311.82 $ 358.15 $ 447.92 $ 563.61
72 Iron and steel $ 171.26 $ 370.26 $ 363.62 $ 514.47 $ 489.57
Honduras 85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 125.59 $ 181.02 $ 183.14 $ 258.87 $ 303.30
87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof $ 79.67 $ 154.07 $ 161.55 $ 205.16 $ 248.02
72 Iron and steel $ 161.31 $ 379.49 $ 278.04 $ 306.78 $ 240.23
Nicaragua 87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof $ 36.58 $ 64.79 $ 62.50 $ 124.85 $ 239.42
84 Machinery and mechanical appliances, boilers, nuclear reactors; parts thereof $ 0.00 $ 0.00 $ 62.81 $ 82.27 $ 121.73
85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 40.44 $ 54.63 $ 56.76 $ 75.27 $ 102.41
84 Nuclear reactors, boilers, machinery and mechanical appliances; parts thereof $ 34.21 $ 69.21 $ 0.00 $ 0.00 $ 0.00
Panama 84 Machinery and mechanical appliances, boilers, nuclear reactors; parts thereof $ 0.00 $ 0.00 $ 1,593.07 $ 1,719.39 $ 2,043.77
27 Mineral fuels, mineral oils and products of their distillation; bituminous substances; mineral waxes $ 1,310.73 $ 1,991.18 $ 2,647.84 $ 2,018.49 $ 1,866.64
85 Electrical machinery and equipment and parts thereof; sound recorders and reproducers; television image and sound recorders and reproducers, parts and accessories of such articles $ 850.01 $ 1,275.24 $ 1,473.04 $ 1,304.61 $ 1,372.14
84 Nuclear reactors, boilers, machinery and mechanical appliances; parts thereof $ 1,783.15 $ 1,443.49 $ 0.00 $ 0.00 $ 0.00
Dato reportado por China; equivale a lo que cada país centroamericano importó.
Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.

4.6 Importaciones de El Salvador desde EE.UU. en Farmacéuticos y Equipos de Cómputo (2020–2024)

# Usando ct_commodity_lookup(): obtener los códigos HS de los productos usados en esta tabla
Pharma_code <- ct_commodity_lookup("pharmaceutical", return_code = TRUE, return_char = TRUE)
Computer_code <- ct_commodity_lookup("computer", return_code = TRUE, return_char = TRUE)

# Paso 1: filtrar solo importaciones desde USA, para los productos farmacéuticos y de cómputo
Analisis9_Filtrado <- df_slv_productos_global %>% 
  filter(
    flow_desc %in% c("Import", "import"),
    partner_desc %in% c("USA", "United States"),
    cmd_code %in% c("3004", "8471")
  ) %>% 
  select(Anio = period, Cod_SH = cmd_code, Descripcion = cmd_desc, Origen = partner_desc, Valor = primary_value)

# Paso 2: uniformar el nombre de origen y ponerle nombre legible a cada producto
Analisis9_Base <- Analisis9_Filtrado %>% 
  mutate(
    Anio = as.character(Anio),
    Origen = "Estados Unidos",
    Producto = case_when(
      Cod_SH == "3004" ~ "Productos Farmacéuticos (Medicamentos)",
      Cod_SH == "8471" ~ "Maquinaria / Equipos de Cómputo"
    ),
    Valor_MM = round(Valor / 1e6, 2)
  )

# Paso 3: sumar por producto y año (por si hay registros repetidos)
Analisis9_Sumado <- Analisis9_Base %>% 
  group_by(Cod_SH, Descripcion, Origen, Producto, Anio) %>% 
  summarise(Valor_MM = sum(Valor_MM, na.rm = TRUE), .groups = "drop")

# Paso 4: pasar los años de filas a columnas y dar formato final de tabla
Analisis9_Sumado %>% 
  pivot_wider(names_from = Anio, values_from = Valor_MM, values_fill = 0) %>% 
  select(Cod_SH, Descripcion, Origen, Producto, all_of(anios_cols)) %>% 
  mutate(across(all_of(anios_cols), ~ paste0("$ ", format(round(., 2), big.mark = ",", nsmall = 2)))) %>% 
  kable(
    align = c("c", "l", "c", "l", rep("r", length(anios_cols))),
    col.names = c("Cód. SH", "Descripción Oficial Completa (HS-4)", "Origen", "Producto", anios_cols),
    caption = "Tabla 4.6: Importaciones de El Salvador desde EE.UU. en Farmacéuticos y Equipos de Cómputo (2020–2024, MM USD)"
  ) %>% 
  kable_classic(html_font = "Times New Roman", font_size = 9.5) %>% 
  column_spec(2, width = "18em") %>%
  footnote(
    general = c(
      "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R."
    ),
    general_title = ""
  ) %>% 
  kable_styling(full_width = F, position = "center")
Tabla 4.6: Importaciones de El Salvador desde EE.UU. en Farmacéuticos y Equipos de Cómputo (2020–2024, MM USD)
Cód. SH Descripción Oficial Completa (HS-4) Origen Producto 2020 2021 2022 2023 2024
3004 Medicaments; (not goods of heading no. 3002, 3005 or 3006) consisting of mixed or unmixed products for therapeutic or prophylactic use, put up in measured doses (incl. those in the form of transdermal admin. systems) or packed for retail sale Estados Unidos Productos Farmacéuticos (Medicamentos) $ 47.05 $ 35.66 $ 58.28 $ 61.93 $ 54.99
8471 Automatic data processing machines and units thereof, magnetic or optical readers, machines for transcribing data onto data media in coded form and machines for processing such data, not elsewhere specified or included Estados Unidos Maquinaria / Equipos de Cómputo $ 8.43 $ 15.46 $ 11.41 $ 10.71 $ 7.87
Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.
# RENDERIZADO DE GRÁFICO 3 
df_grafico3 <- Analisis9_Sumado %>% 
  mutate(
    Anio_Num = as.numeric(Anio),
    Texto_Tooltip = paste0(
      "<b>Producto:</b> ", Producto, "<br>",
      "<b>Año:</b> ", Anio, "<br>",
      "<b>Monto CIF:</b> $", format(Valor_MM, big.mark = ","), " MM USD"
    )
  )

p3 <- ggplot(df_grafico3, aes(x = Anio_Num, y = Valor_MM, color = Producto, group = Producto, text = Texto_Tooltip)) +
  geom_line(linewidth = 1.2) +
  geom_point(size = 2.5) +
  scale_color_manual(values = c(
    "Productos Farmacéuticos (Medicamentos)" = "#2CA02C",
    "Maquinaria / Equipos de Cómputo"        = "#D62728"
  )) +
  scale_x_continuous(breaks = as.numeric(anios_cols)) +
  scale_y_continuous(labels = scales::comma) +
  labs(
    title = "Gráfico 4.6: Importaciones de El Salvador desde EE.UU. en Farmacéuticos y Equipos de Cómputo (2020–2024)", 
    x = "Año", 
    y = "Millones de USD (CIF)", 
    color = "Producto",
    caption = "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R.",
  ) +
  theme_minimal(base_family = "Times New Roman")

ggplotly(p3, tooltip = "text")

4.7 Exportaciones de Estados Unidos con el Resto del Mundo en MM USD(2024).

# Paso 1: cargar listas base de países y productos
Paises_ <- country_codes
Catalogo_Productos <- ct_get_ref_table("HS")

# Paso 2: buscar el código del producto "Petroleum oils" (petróleo)
Petroleo <- ct_commodity_lookup("Petroleum oils", return_code = TRUE, return_char = TRUE)

# Paso 3: descargar datos de exportaciones de petróleo desde Estados Unidos hacia el mundo
datos_Petroleo <- ct_get_data(
  reporter = "USA",
  flow_direction = "export",
  partner = "World",
  start_date = 2024,
  end_date = 2024,
  frequency = "A",
  commodity_code = Petroleo
)

# Paso 4: procesar y filtrar los datos
tabla_Petroleo <- datos_Petroleo %>%
  select(
    Year = ref_year,
    ISO = reporter_iso,
    Country = reporter_desc,
    Socio = partner_desc,
    Nivel_Agregacion = aggr_level,
    Codigo_Arancelario = cmd_code,
    Descripcion = cmd_desc,
    Valor = fobvalue
  ) %>%
  filter(Nivel_Agregacion == 6) %>%
  mutate(Valor = round(Valor / 1e6, 2))  # Convertir a millones de USD

# Paso 5: crear tabla formateada
tabla_Petroleo %>%
  kable(
    caption = "Tabla 4.7: Exportaciones de Estados Unidos con el Resto del Mundo en MM USD"
  ) %>%
  kable_classic(html_font = "Times New Roman", font_size = 14) %>%
  add_footnote(
    label = "Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R",
    notation = "symbol"
  ) %>%
  kable_styling()
Tabla 4.7: Exportaciones de Estados Unidos con el Resto del Mundo en MM USD
Year ISO Country Socio Nivel_Agregacion Codigo_Arancelario Descripcion Valor
2024 USA USA World 6 270900 Oils; petroleum oils and oils obtained from bituminous minerals, crude 118499.36
2024 USA USA World 6 271012 Petroleum oils and oils from bituminous minerals, not containing biodiesel, not crude, not waste oils; preparations n.e.c, containing by weight 70% or more of petroleum oils or oils from bituminous minerals; light oils and preparations 46906.83
2024 USA USA World 6 271019 Petroleum oils and oils from bituminous minerals, not containing biodiesel, not crude, not waste oils; preparations n.e.c, containing by weight 70% or more of petroleum oils or oils from bituminous minerals; not light oils and preparations 69888.65
2024 USA USA World 6 271020 Petroleum oils and oils from bituminous minerals, containing biodiesel, not crude, not waste oils; preparations n.e.c, containing by weight 70% or more of petroleum oils or oils from bituminous minerals 703.93
2024 USA USA World 6 271390 Residues; of petroleum oils or of oils obtained from bituminous minerals 12.20
2024 USA USA World 6 340311 Lubricating preparations; for the treatment of textile and similar materials (leather, furskins etc), containing less than 70% (by weight) of petroleum oils or oils obtained from bituminous minerals 36.34
2024 USA USA World 6 340319 Lubricating preparations; (other than for the treatment of textile and similar materials), containing less than 70% (by weight) of petroleum oils or oils obtained from bituminous minerals 885.06
2024 USA USA World 6 340391 Lubricating preparations; for the treatment of textile and similar materials (leather, furskins etc), (not containing petroleum oils or oils obtained from bituminous minerals) 51.09
2024 USA USA World 6 340399 Lubricating preparations; other than for the treatment of textile and similar materials, not containing petroleum oils or oils obtained from bituminous minerals 1039.04
2024 USA USA World 6 381121 Lubricating oil additives; containing petroleum oils or oils obtained from bituminous minerals 2075.30
2024 USA USA World 6 381129 Lubricating oil additives; not containing petroleum oils or oils obtained from bituminous minerals 318.02
2024 USA USA World 6 381900 Hydraulic fluids; for brakes and other prepared liquids for hydraulic transmission, not containing or containing less than 70% by weight of petroleum oils or oils obtained from bituminous minerals 178.80
2024 USA USA World 6 382600 Biodiesel and mixtures thereof; not containing or containing less than 70% by weight of petroleum oils or oils obtained from bituminous minerals 798.38
* Fuente: elaboración propia con datos de UN Comtrade Database, obtenidos mediante el paquete comtradr en R

Conclusión

La presente investigación y el desarrollo práctico implementado demuestran que las Interfaces de Programación de Aplicaciones (API), específicamente la plataforma REST de UN Comtrade analizada a través del paquete comtradr en R, constituyen una infraestructura tecnológica disruptiva y esencial para el análisis económico moderno. Al sustituir los flujos tradicionales de descarga manual por sistemas de extracción automatizados y reproducibles, se mitiga de forma significativa el margen de error humano y se optimiza la eficiencia en el procesamiento de Big Data comercial. A nivel metodológico, la capacidad de registrar credenciales mediante variables de entorno y documentar el código de consulta, garantiza que cualquier analista independiente o cualquier personas interesada en general, pueda replicar las auditorías estadísticas, democratizando el acceso a la información macroeconómica global y alineando la investigación empírica con los estándares de la ciencia de datos abierta.

Desde la perspectiva empírica, la muestra estadística procesada para el periodo 2020–2024 revela dinámicas estructurales profundas en la inserción comercial de El Salvador. En primer lugar, los modelos de datos aplicados a la canasta agroexportadora tradicional (representada por el café y el azúcar), evidencian una marcada vulnerabilidad ante las fluctuaciones de precios internacionales, mientras que el sector manufacturero textil (específicamente de camisetas) se consolida como un pilar de estabilidad y generación constante de divisas en la balanza de pagos. Por otro lado, las importaciones que vienen de Estados Unidos sobre todo en productos farmacéuticos y equipo de cómputo confirman que seguimos dependiendo bastante de ese socio comercial, lo que hace pensar en la importancia de diversificar proveedores para reducir riesgos en sectores tan sensibles. A nivel global, también pudimos ver que las exportaciones de Estados Unidos hacia el resto del mundo están fuertemente concentradas en el petróleo y sus derivados, lo cual confirma el peso que sigue teniendo el sector energético dentro de su comercio exterior, y ayuda a entender mejor el contexto detrás de la relación comercial que este país mantiene con el resto del mundo, incluido El Salvador. Finalmente, al analizar las exportaciones de China hacia Centroamérica, se nota un crecimiento comercial cada vez más fuerte y desigual en la región.

Finalmente, la evaluación del vector de exportaciones de la República Popular China hacia el istmo centroamericano expone un fenómeno de penetración comercial asimétrica y creciente en la región.

Referencias

Amazon Web Services. (s.f.). ¿Qué es una interfaz de programación de aplicaciones (API)? AWS. Recuperado el 11 de septiembre de 2026, de https://aws.amazon.com/es/what-is/api/

Defranchi, L. (2026, 7 de enero). Different types of APIs explained: Styles, protocols, audiences + real-life examples. Axway Blog. https://blog.axway.com/learning-center/apis/basics/different-types-apis

Goodwin, M. (2024, 9 de abril). ¿Qué es una API? IBM. https://www.ibm.com/mx-es/think/topics/api

Bochtler, P., Goers, H., & Muir, C. (2023). comtradr: Interface with the United Nations Comtrade API (versión del paquete R 0.4.0.0). rOpenSci. https://docs.ropensci.org/comtradr/

Copenhagen Business School Library. (s.f.). UN Comtrade. https://www.cbs.dk/en/library/search-library/online-resources/un-comtrade

CRAN. (2025). comtradr: Interface with the United Nations Comtrade API (documentación de referencia, v. 1.0.5). https://cran.r-project.org/web/packages/comtradr/refman/comtradr.html

Shop UN. (s.f.). Databases. https://shop.un.org/databases

UN Comtrade Developer Portal. (s.f.). Sign in – UN Comtrade Developer Portal. https://comtradedeveloper.un.org/

United Nations Statistics Division. (s.f.-a). UN Comtrade API – Help Center. https://uncomtrade.org/docs/un-comtrade-api/

Bonilla Melara, J. I. (s.f.). Uso de APIs en R para el acceso a datos económicos: OCDE, FMI, Banco Mundial, UN Comtrade y Eurostat. RPubs. https://rpubs.com/JeffryBonilla20/Uso_APIs_R