-Este es un cuaderno donde ilustraremos los subconjuntos de datos de estadísticos agrícolas del EVA 2019-2022 proporcionados por la UPRA en: https://upra.gov.co/es-co/Evas_Documentos/BaseEVA_Agr%C3%ADcola20192022.xlsx.
-El objetivo es ayudar a los estudiantes de Geomática Básica de la UNAL a adquirir habilidades digitales en R.
-Sí ya descargamos el archivo xlsx mencionado anteriormente y lo guardamos en el mismo directorio donde se encuentra este cuaderno.Cuando lo abrimos en Excel, las primeras filas del archivo BaseEVA_Agricola20192022.xlsx tienen este aspecto:
-Luego, para poder arreglarlo debemos podar el archivo original para eliminar los banners y cambiar el nombre de las columnas para poder leerlo desde R. No debe haber espacios en blanco ni caracteres extraños en el nombre de ninguna columna.
-Limpiamosla memoria temporal:
rm(list=ls())
-Corremos las librerias:
library(readxl)
library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
-Comprobamos los nombres de los archivos que se encuentran en el mismo directorio que este cuaderno:
list.files()
## [1] "ciudadesco.csv" "CuadernoEVA.nb.html"
## [3] "CuadernoEVA.Rmd" "Cuadernoeva_cundi.html"
## [5] "Cuadernoeva_cundi.Rmd" "CUN_tuberculos_2022.csv"
## [7] "CUNDINARMCA CUADERNO 2.nb.html" "EVA_19_22.xlsx"
## [9] "EVA_CUNDI.csv" "Imagen1.png"
## [11] "imagen2.png" "imagen3.png"
## [13] "imagen4.png" "MAPAS-TOLIMA.html"
## [15] "MAPAS TOLIMA.Rmd" "MGN_MPIO_POLITICO.cpg"
## [17] "MGN_MPIO_POLITICO.dbf" "MGN_MPIO_POLITICO.prj"
## [19] "MGN_MPIO_POLITICO.sbn" "MGN_MPIO_POLITICO.sbx"
## [21] "MGN_MPIO_POLITICO.shp" "MGN_MPIO_POLITICO.shp.xml"
## [23] "MGN_MPIO_POLITICO.shx" "MGN2021_MPIO_POLITICO.rar"
## [25] "PRODUCCIÓN-PAPA.Rmd" "PRODUCCIÓN PAPA.Rmd"
## [27] "rsconnect" "Tolima_Algodon.csv"
## [29] "Tolima_dep.gpkg" "tolima_mun.gpkg"
-En este caso el archivo fijo es EVA_19_22.xlsx Como se trata de un archivo excel, conviene saber cuántas hojas hay:
setwd("C:/Users/camil/OneDrive/Escritorio/Geomatica/CuadernoEVA")
hojas <- excel_sheets("EVA_19_22.xlsx")
hojas
## [1] "DatosEVA2019-2022"
-Hay una sola hoja allí. Leámoslo:
library(readxl)
EVA_19_22 <- read_excel("C:/Users/camil/OneDrive/Escritorio/Geomatica/CuadernoEVA/EVA_19_22.xlsx",
sheet = "DatosEVA2019-2022")
EVA_19_22
-Tenga en cuenta que la columna COD_MUN es un carácter. Este es el tipo de datos común para los identificadores.
-Como estamos interesados solo en un departamento en este caso es Cundinamarca, necesitamos filtrar EVA_19_22:
(cndnmrc19_22 = dplyr::filter(EVA_19_22, DEPTO == "Cundinamarca"))
-Ahora, seleccionamos los datos del 2022 de Cundinamarca:
(cndnmrc_22 = dplyr::filter(cndnmrc19_22, YEAR == 2022))
-Ahora seleccionamos solo el grupo de cultivos que nos interesa, en este caso es Raices y Tuberculos y resumamos la producción por municipio:
cndnmrc_22 %>%
group_by(COD_MUN, MUNICIPIO, GRUPO) %>%
filter(GRUPO=='Raíces y Tubérculos') %>%
summarize(max_prod = max(PRODUCCION, na.rm = TRUE)) %>%
arrange(desc(max_prod)) -> RaicesyTuberculos2022
## `summarise()` has grouped output by 'COD_MUN', 'MUNICIPIO'. You can override
## using the `.groups` argument.
RaicesyTuberculos2022
-Usamos la biblioteca readr para guardar nuestros datos en formato csv:
write_csv( RaicesyTuberculos2022, "CUN_tuberculos_2022.csv")
-Comprobamos que el archivo ha sido creado:
list.files()
## [1] "ciudadesco.csv" "CuadernoEVA.nb.html"
## [3] "CuadernoEVA.Rmd" "Cuadernoeva_cundi.html"
## [5] "Cuadernoeva_cundi.Rmd" "CUN_tuberculos_2022.csv"
## [7] "CUNDINARMCA CUADERNO 2.nb.html" "EVA_19_22.xlsx"
## [9] "EVA_CUNDI.csv" "Imagen1.png"
## [11] "imagen2.png" "imagen3.png"
## [13] "imagen4.png" "MAPAS-TOLIMA.html"
## [15] "MAPAS TOLIMA.Rmd" "MGN_MPIO_POLITICO.cpg"
## [17] "MGN_MPIO_POLITICO.dbf" "MGN_MPIO_POLITICO.prj"
## [19] "MGN_MPIO_POLITICO.sbn" "MGN_MPIO_POLITICO.sbx"
## [21] "MGN_MPIO_POLITICO.shp" "MGN_MPIO_POLITICO.shp.xml"
## [23] "MGN_MPIO_POLITICO.shx" "MGN2021_MPIO_POLITICO.rar"
## [25] "PRODUCCIÓN-PAPA.Rmd" "PRODUCCIÓN PAPA.Rmd"
## [27] "rsconnect" "Tolima_Algodon.csv"
## [29] "Tolima_dep.gpkg" "tolima_mun.gpkg"
-Leemos el archivo para comprobar que los datos son correctos:
los_datos22 <- read_csv("CUN_tuberculos_2022.csv")
## Rows: 102 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): MUNICIPIO, GRUPO
## dbl (2): COD_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_datos22
Hay que tener en cuenta que la columna COD_MUN ahora es doble (es decir, numérica). Este no es el tipo de datos común para identificadores. -Como necesitamos cambiar dicho tipo de datos, usamos mutate:
los_datos22 %>% mutate(COD_MUN = as.character(COD_MUN)) -> nuevos_datos22
head(nuevos_datos22)
-Ahora, procedemos a crear el cuaderno donde uniremos los datos de producción de 2022 a los polígonos que representan a los municipios de nuestro departamento.
Lizarazo, I. 2023. How to read and subset .xlsx agricultural statistics data. Available at https://rpubs.com/otra_vez_eva
sessionInfo()
## R version 4.3.1 (2023-06-16 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 22621)
##
## Matrix products: default
##
##
## 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.1.3 readr_2.1.4 readxl_1.4.3
##
## loaded via a namespace (and not attached):
## [1] crayon_1.5.2 vctrs_0.6.3 cli_3.6.1 knitr_1.44
## [5] rlang_1.1.1 xfun_0.40 generics_0.1.3 jsonlite_1.8.7
## [9] bit_4.0.5 glue_1.6.2 htmltools_0.5.6 sass_0.4.7
## [13] hms_1.1.3 fansi_1.0.4 rmarkdown_2.25 cellranger_1.1.0
## [17] evaluate_0.22 jquerylib_0.1.4 tibble_3.2.1 tzdb_0.4.0
## [21] fastmap_1.1.1 yaml_2.3.7 lifecycle_1.0.3 compiler_4.3.1
## [25] pkgconfig_2.0.3 rstudioapi_0.15.0 digest_0.6.33 R6_2.5.1
## [29] tidyselect_1.2.0 utf8_1.2.3 parallel_4.3.1 vroom_1.6.4
## [33] pillar_1.9.0 magrittr_2.0.3 bslib_0.5.1 bit64_4.0.5
## [37] tools_4.3.1 cachem_1.0.8