Introducción

Este es un cuaderno muy sencillo que muestra cómo extraer un subconjunto de los datos estadísticos agrícolas de EVA 2019-2025 facilitados por la UPRA en

https://upra.gov.co/es-co/Evas_Documentos/BaseEVA_Agr%C3%ADcola20192025.xlsx.

Su objetivo es ayudar a los alumnos de Geomática Básica de la UNAL a adquirir competencias digitales en R.

Requisitos previos

Se da por hecho que ya has descargado el archivo xlsx mencionado anteriormente y lo has guardado en el mismo directorio en el que se encuentra este cuaderno.

Al abrirlo en Excel, las primeras filas del archivo BaseEVA_Agricola20192025.xlsx tienen este aspecto:

Luego, debes recortar el archivo original para eliminar los banners y renombrar las columnas, a fin de poder leerlo desde R. No debe haber espacios en blanco ni caracteres extraños en ningún nombre de columna.

Setup

Limpia la memoria temporal:

rm(list=ls())

Carga las bibliotecas de R:

library(readxl)
library(readr)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Lee el conjunto de datos de EVA 2019-2025

Veamos los nombres de los archivos que se encuentran en el mismo directorio que este cuaderno:

list.files()
## [1] "Cuaderno-8.html"        "Cuaderno-8.Rmd"         "Cuaderno 8.nb.html"    
## [4] "Cuaderno 8.Rmd"         "Datos"                  "guaj_frutales_2025.csv"

En este caso, el archivo en cuestión es EVA_19_22.xlsx

Dado que se trata de un archivo de Excel, conviene saber cuántas hojas contiene:

hojas <- excel_sheets(".\\Datos\\Evaluaciones_Agropecuarias_Municipales_EVA.xlsx")

Veamos:

hojas
## [1] "Evaluaciones_Agropecuarias_Muni"

Ahí hay una sola hoja. Vamos a leerla:

EVA19_25 <- read_excel(".\\Datos\\Evaluaciones_Agropecuarias_Municipales_EVA.xlsx")

EVA19_25

Ten en cuenta que la columna COD_MUN es de tipo carácter. Este es el tipo de datos habitual para los identificadores.

Datos de un subconjunto correspondientes a tu departamento Dado que solo nos interesa un departamento, debemos filtrar la tabla EVA19_22:

(guaj19_25 = dplyr::filter(EVA19_25, DEPARTAME == "La Guajira"))

Ahora, seleccionaremos únicamente los datos correspondientes a 2025:

(guaj_25 = dplyr::filter(guaj19_25, AÑO == 2025))

#Selecciona el subconjunto del grupo de cultivos que estás analizando Ahora, seleccionemos solo el grupo de cultivos que nos interesa y resumamos la producción por municipio:

guaj_25 %>%
  group_by(`CÓD. MUN.`, MUNICIPIO, `GRUPO DE CULTIVO`) %>%
  filter(`GRUPO DE CULTIVO` == "Frutales") %>%
  summarize(
    max_prod = max(`Producción (t)`, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(desc(max_prod)) -> frutales2025
frutales2025

Escribir los datos

Utilizaremos la biblioteca readr para guardar nuestros datos en formato CSV:

write_csv(frutales2025, "guaj_frutales_2025.csv")

Comprobemos que se ha creado el archivo:

list.files()
## [1] "Cuaderno-8.html"        "Cuaderno-8.Rmd"         "Cuaderno 8.nb.html"    
## [4] "Cuaderno 8.Rmd"         "Datos"                  "guaj_frutales_2025.csv"

Leamos el archivo para comprobar que los datos son correctos:

los_datos25 <- read_csv("guaj_frutales_2025.csv")
## Rows: 12 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): MUNICIPIO, GRUPO DE CULTIVO
## dbl (2): CÓD. MUN., 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

Ten en cuenta que la columna COD_MUN es ahora de tipo «double» (es decir, numérico). Este no es el tipo de datos habitual para los identificadores.

En caso de que necesitemos cambiar dicho tipo de datos, podemos utilizar la función «mutate»:

los_datos25 %>% mutate(`CÓD. MUN.` = as.character(`CÓD. MUN.`)) -> nuevos_datos25 
head(nuevos_datos25)

¡Bien hecho! Ahora puedes pasar a crear el cuaderno de trabajo en el que uniremos los datos de producción de 2025 con los polígonos que representan los municipios de nuestra provincia.

Fuente: Finagro, 2019

Referencia

Si utilizas código de este cuaderno en tu proyecto, por favor, cítalo de la siguiente manera:

Lizarazo, I. 2023. Cómo leer y extraer subconjuntos de datos estadísticos agrícolas en formato .xlsx. Disponible en https://rpubs.com/otra_vez_eva

Reproducibilidad

sessionInfo()
## R version 4.6.2 (2026-10-29 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Colombia.utf8  LC_CTYPE=Spanish_Colombia.utf8   
## [3] LC_MONETARY=Spanish_Colombia.utf8 LC_NUMERIC=C                     
## [5] LC_TIME=Spanish_Colombia.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.6.0
## 
## loaded via a namespace (and not attached):
##  [1] crayon_1.5.3      vctrs_0.7.3       cli_3.6.6         knitr_1.52       
##  [5] rlang_1.3.0       xfun_0.62         otel_0.2.0        generics_0.1.4   
##  [9] jsonlite_2.0.0    bit_4.6.0         glue_1.8.1        htmltools_0.5.9  
## [13] sass_0.4.10       hms_1.1.4         rmarkdown_2.32    cellranger_1.1.0 
## [17] evaluate_1.0.5    jquerylib_0.1.4   tibble_3.3.1      tzdb_0.5.0       
## [21] fastmap_1.2.0     yaml_2.3.12       lifecycle_1.0.5   compiler_4.6.2   
## [25] pkgconfig_2.0.3   rstudioapi_0.19.0 digest_0.6.39     R6_2.6.1         
## [29] tidyselect_1.2.1  parallel_4.6.2    vroom_1.7.1       pillar_1.11.1    
## [33] magrittr_2.0.5    bslib_0.12.0      bit64_4.8.6       tools_4.6.2      
## [37] cachem_1.1.0