Introducción

Para el trabajo de este cuaderno se utilizará la base de datos agrarios de EVA2029-2025 en formato .xlsx.

Prerrequisitos

Para el desarrollo de esta práctica, se asume que se ha descargado previamente el archivo de Excel correspondiente a las Evaluaciones Agropecuarias Municipales, titulado BaseEVA_Agricola20192025.xlsx, y que este se encuentra almacenado dentro del mismo directorio de trabajo donde se ejecuta este cuaderno de R Markdown.

Antes de realizar la importación de los datos en el entorno de R, es fundamental realizar una depuración (“poda”) del archivo original en Excel. Este proceso consiste en eliminar las filas superiores que contienen banners institucionales, logos o metadatos informativos, así como renombrar las columnas del set de datos para garantizar que no existan espacios en blanco ni caracteres especiales en los nombres de las variables, facilitando así su correcta lectura y manipulación computacional.

Setup

Limpiamos la memoria temporal:

rm(list=ls())

Cargamos las librerias al espacio de trabajo:

library(readxl)
library(readr)
library(dplyr)

Lectura del conjunto de datos de la EVA 2019-2025

Antes de proceder con la importación formal de las Evaluaciones Agropecuarias Municipales al entorno de trabajo, es una buena práctica de programación verificar y listar los nombres de los archivos que coexisten en el mismo directorio donde se encuentra alojado este cuaderno. Esto permite comprobar la correcta disposición y nomenclatura de las bases de datos de la UPRA.

list.files("C:/Users/Acer/Desktop/GB2R/Proyecto1/datos")
##  [1] "BaseAgricola20192025.xlsx" "Basesupra19_25.xlsx"      
##  [3] "Ciudades Narino.gpkg"      "ciudadesCol.gpkg"         
##  [5] "COL_adm2.cpg"              "COL_adm2.csv"             
##  [7] "COL_adm2.dbf"              "COL_adm2.prj"             
##  [9] "COL_adm2.shp"              "COL_adm2.shx"             
## [11] "COL_roads.dbf"             "COL_roads.prj"            
## [13] "COL_roads.shp"             "COL_roads.shx"            
## [15] "Departamento narino.gpkg"  "license.txt"              
## [17] "Municipios Narinox.gpkg"   "narino.gpkg"              
## [19] "narino_agua_area.gpkg"     "narino_agua_lineas.gpkg"  
## [21] "narino_alt.tif"            "narino_alt.tif.aux.xml"   
## [23] "narino_mun.gpkg"           "narino_roads.gpkg"        
## [25] "worldcities.csv"           "worldcities.xlsx"

Inspección e Importación de las Hojas de Excel

En este caso particular, el archivo depurado y estructurado se ha renombrado como Basesupra19_25.xlsx. Al tratarse de un formato de hoja de cálculo compuesto, el primer paso metodológico consiste en identificar cuántas hojas internas componen el archivo y cuáles son sus nombres, asegurando así que apuntemos a la pestaña correcta durante la lectura.

A continuación, se utiliza la función excel_sheets() para almacenar y visualizar los nombres de las hojas disponibles. Como resultado, se corrobora la existencia de una única hoja denominada "datos". Finalmente, se procede con la importación formal del set de datos agropecuarios asignándolo a un objeto tipo dataframe llamado EVA19_25.

hojas <- excel_sheets("C:/Users/Acer/Desktop/GB2R/Proyecto1/datos/Basesupra19_25.xlsx")

Veremos el nombre de las hojas detectadas:

hojas
## [1] "datos"

Vamos a importar la base de datos de la EVA desde el archivo limpio

EVA19_25 <- read_excel("C:/Users/Acer/Desktop/GB2R/Proyecto1/datos/Basesupra19_25.xlsx")
EVA19_25

Es importante destacar que la columna que contiene los códigos municipales debe ser almacenada y tratada como una variable de tipo carácter (character). Este es el estándar requerido para identificadores geográficos o códigos DIVIPOLA, ya que evita la pérdida de los ceros a la izquierda en los códigos de los municipios.

Filtrado de Datos por Departamento

Dado que el análisis se centra en un ámbito geográfico específico, se procede a realizar un subconjunto de los datos (subset) mediante la función filter() del paquete dplyr. Esto permite aislar únicamente los registros correspondientes al departamento de interés para continuar con la evaluación agropecuaria local.

(narino_19_25 <- dplyr::filter(EVA19_25, departamento == "Nariño"))

Ahora seleccionamos los datos solo del 2025

(narino_2025 <- dplyr::filter(narino_19_25, anho == 2025))

Subconjunto por Grupo de Cultivos y Resumen Municipal

Con el fin de especializar el diagnóstico sectorial, se procede a aislar un grupo específico de sistemas productivos (en este caso, el grupo de Frutales) para evaluar su comportamiento a nivel local. Para ello, se estructura un flujo de trabajo encadenado mediante el operador pipe (%>%) además de las operaciones secuenciales group_by(), filter(), summarize() y arrange().

frutales2025 <- narino_2025 %>% 
  group_by(codigoMunicipio, municipio, grupo_especie) %>% 
  filter(grupo_especie == 'Frutales') %>% 
  summarize(max_prod = max(produccio, na.rm = TRUE)) %>% 
  arrange(desc(max_prod))

Vemos el resultado

frutales2025

Exportación e Importación de Verificación de Resultados

Una vez estructurado el resumen municipal de producción para el grupo de interés, es una práctica fundamental de la gestión de datos exportar el subconjunto obtenido a un formato de almacenamiento abierto e intercambiable, como un archivo CSV (Valores Separados por Comas). Esto garantiza la persistencia de los datos procesados sin necesidad de repetir los filtros tabulares en sesiones futuras.

Para ello, se utiliza la función write_csv() del paquete readr. Posteriormente, se realiza una lectura de comprobación del archivo generado mediante read_csv() para verificar la integridad de las columnas y los tipos de datos indexados.

write_csv(frutales2025, "narino_frutales_2025.csv")

Confirmamos

list.files()
##  [1] "cultivonarinoimg.jpg"           "descargas de prerequisitos"    
##  [3] "Entregas"                       "GB_simple_features.html"       
##  [5] "GB_simple_features.nb.html"     "GB_simple_features.Rmd"        
##  [7] "miprimer_cuaderno.Rmd"          "miprimer_script.R"             
##  [9] "municipios.gpkg"                "narino_frutales_2025.csv"      
## [11] "Proyecto1"                      "Proyecto2"                     
## [13] "Proyecto3"                      "read_agricultural_data.html"   
## [15] "read_agricultural_data.nb.html" "read_agricultural_data.Rmd"    
## [17] "rsconnect"                      "tablainformativa.png"

Comprobamos que se haya exportado el archvo con la información correcta

los_datos25 <- read_csv("narino_frutales_2025.csv")
## Rows: 64 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): municipio, grupo_especie
## dbl (2): codigoMunicipio, max_prod
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
los_datos25

Tenga en cuenta que la columna codigoMunicipio es ahora un tipo de dato numérico (double). Este no es el tipo de dato común para los identificadores.

En caso de que necesitemos cambiar dicho tipo de dato, podemos utilizar la función mutate():

nuevos_datos25 <- los_datos25 %>% 
  mutate(codigoMunicipio = as.character(codigoMunicipio))

Visualizamos para confirmar

head(nuevos_datos25)

Acerca de la producción:

Producción de Frutales en Nariño según EVA(2025)

A partir del procesamiento de datos tabulares y la consolidación del resumen municipal, se identifican dinámicas productivas altamente heterogéneas en el departamento de Nariño para el año 2025. El volumen total y los picos de producción máxima por municipio reflejan la fuerte influencia de los pisos térmicos, los sistemas de especialización regional y las ventajas comparativas agroecológicas del territorio.

1. El Polo Productivo de la Costa Pacífica

El municipio de San Andrés de Tumaco se consolida como el líder indiscutible del sector frutícola en el departamento, registrando una producción máxima excepcional de 70.912,80 toneladas. Esta cifra se explica por las condiciones de bosque húmedo tropical (bh-T) de la llanura del Pacífico, ideales para el establecimiento a gran escala de cultivos perennes de alta demanda e importancia socioeconómica regional, tales como el chontaduro, el coco y el plátano (bajo la clasificación de frutales de la UPRA). En este mismo eje litoral destaca El Charco, ocupando el segundo lugar departamental con 31.620,00 toneladas, lo que demuestra el enorme potencial agroproductivo de las zonas de bajamar y vegas de los ríos patianos.

2. La Fruticultura Andina y de Valles Interandinos

En contraste con las llanuras del Pacífico, la vertiente cordillerana y las zonas de ladera andina muestran un clúster frutícola muy dinámico, caracterizado por frutales de clima medio y de pasifloras (como la maracuyá, la granadilla y la lulo) o cítricos en zonas de cañón. Los polos de desarrollo en esta subregión están representados por: * Sandoná: Registra una producción notable de 14.128,00 toneladas, impulsada por la diversificación de sus laderas y microclimas. * El Rosario y Samaniego: Reportan producciones máximas de 13.250,38 y 10.073,60 toneladas respectivamente, consolidándose como despensas clave para los mercados de consumo interno y centros urbanos como Pasto. * Ricaurte y Olaya Herrera: Actúan como zonas de transición y pie de monte con 11.240,00 y 10.955,00 toneladas, sirviendo de puente biológico y comercial entre los ecosistemas andinos y el Pacífico.

Conclusión del Diagnóstico Regional

La distribución espacial de los datos demuestra que la fruticultura en Nariño es un motor económico estratégico. Mientras que la franja costera concentra los mayores volúmenes volumétricos debido a economías de escala y extensiones continuas de cultivos tropicales, los municipios de la cordillera andina aportan una alta diversidad de especies frutales medianas y transitorias. Este comportamiento subregional subraya la importancia de planificar la infraestructura logística, las cadenas de frío y los distritos de riego de manera diferenciada, atendiendo a las necesidades climáticas y geográficas específicas de cada cuenca productora del departamento.

  • Fuente Principal: Unidad de Planificación Rural Agropecuaria (UPRA) & Ministerio de Agricultura y Desarrollo Rural (MADR). (2026). Evaluaciones Agropecuarias Municipales (EVA) 2019-2025. Bogotá D.C., Colombia. Recuperado de: https://upra.gov.co/es-co/eva

Referencia

Lizarazo, I. 2023. How to read and subset .xlsx agricultural statistics data. Available at https://rpubs.com/otra_vez_eva

Unidad de Planificación Rural Agropecuaria (UPRA) y Ministerio de Agricultura y Desarrollo Rural (MADR). (2026). Evaluaciones Agropecuarias Municipales (EVA) 2019-2025 [Base de datos]. Sistema de Información de Gestión Agropecuaria. https://upra.gov.co/es-co/eva

Información de la sesión

sessionInfo()
## R version 4.5.2 (2025-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 10 x64 (build 19045)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Mexico.utf8  LC_CTYPE=Spanish_Mexico.utf8   
## [3] LC_MONETARY=Spanish_Mexico.utf8 LC_NUMERIC=C                   
## [5] LC_TIME=Spanish_Mexico.utf8    
## 
## time zone: America/Bogota
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] dplyr_1.2.1  readr_2.2.0  readxl_1.5.0
## 
## loaded via a namespace (and not attached):
##  [1] crayon_1.5.3      vctrs_0.7.3       cli_3.6.6         knitr_1.51       
##  [5] rlang_1.2.0       xfun_0.57         generics_0.1.4    jsonlite_2.0.0   
##  [9] bit_4.6.0         glue_1.8.1        htmltools_0.5.9   sass_0.4.10      
## [13] hms_1.1.4         rmarkdown_2.31    cellranger_1.1.0  evaluate_1.0.5   
## [17] jquerylib_0.1.4   tibble_3.3.1      tzdb_0.5.0        fastmap_1.2.0    
## [21] yaml_2.3.12       lifecycle_1.0.5   compiler_4.5.2    pkgconfig_2.0.3  
## [25] rstudioapi_0.18.0 digest_0.6.39     R6_2.6.1          tidyselect_1.2.1 
## [29] parallel_4.5.2    vroom_1.7.1       pillar_1.11.1     magrittr_2.0.5   
## [33] bslib_0.10.0      bit64_4.8.0       tools_4.5.2       cachem_1.1.0