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.
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.
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
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
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
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
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