En este cuaderno se ilustraran subconjuntos de datos del EVA 2019-2022 proporcionados por el UPRA en https://upra.gov.co/es-co/Evas_Documentos/BaseEVA_Agr%C3%ADcola20192022.xlsx.
Esto ayudara a los estudiantes de Geomatica Basica a adquirir habilidades digitakes en R.
El archivo descargado se tiene que dejar en el misma carpeta donde se encuentra este cuaderno.
Luego, debe 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.
Limpiar la memoria temporal:
rm(list=ls())
Instalar y cargar las librerias de R
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
Comprobemos los nombres de los archivos que se encuentran en el mismo directorio que este cuaderno:
list.files()
## [1] "CUADERNO_EVA.Rproj" "EVA_19_22.xlsx"
## [3] "EVA_DATOS_UPRA.nb.html" "EVA_DATOS_UPRA.Rmd"
## [5] "Tolima_cereales_2022.csv"
En este caso el archivo fijo es EVA_19_22.xlsx. Como se trata de un archivo excel, conviene saber cuántas hojas hay:
hojas <- excel_sheets("EVA_19_22.xlsx")
Lo leemos:
hojas
## [1] "DatosEVA2019-2022"
Solo se encuentra una hoja:
EVA19_22 <- read_excel("EVA_19_22.xlsx")
EVA19_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 necesitamos filtrar EVA19_22:
(Tolima19_22 = dplyr::filter(EVA19_22, DPTO == "Tolima"))
Ahora, seleccionaremos solo datos de 2022:
(Tolima_22 = dplyr::filter(Tolima19_22, YEAR == 2022))
Ahora seleccionemos solo el grupo de cultivos que nos interesa y resumamos la producción por municipio:
Tolima_22 %>%
group_by(COD_MUN, MUNICIPIO, GRUPO) %>%
filter(GRUPO=='Cereales') %>%
summarize(max_prod = max(PRODUCCION, na.rm = TRUE)) %>%
arrange(desc(max_prod)) -> cereales2022
## `summarise()` has grouped output by 'COD_MUN', 'MUNICIPIO'. You can override
## using the `.groups` argument.
cereales2022
Usaremos la biblioteca readr para guardar nuestros datos en formato csv:
write_csv(cereales2022, "Tolima_cereales_2022.csv")
Comprobemos que el archivo ha sido creado:
list.files()
## [1] "CUADERNO_EVA.Rproj" "EVA_19_22.xlsx"
## [3] "EVA_DATOS_UPRA.nb.html" "EVA_DATOS_UPRA.Rmd"
## [5] "Tolima_cereales_2022.csv"
Leamos el archivo para comprobar que los datos son correctos:
los_datos22 <- read_csv("Tolima_cereales_2022.csv")
## Rows: 44 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
Tenga 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.
En caso de que necesitemos cambiar dicho tipo de datos, podemos usar mutate:
los_datos22 %>% mutate(COD_MUN = as.character(COD_MUN)) -> nuevos_datos22
head(nuevos_datos22)
Ahora, se puede proceder 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.
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_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.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.1 sass_0.4.7
## [13] hms_1.1.3 fansi_1.0.5 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 digest_0.6.33 R6_2.5.1 tidyselect_1.2.0
## [29] utf8_1.2.3 parallel_4.3.1 vroom_1.6.4 pillar_1.9.0
## [33] magrittr_2.0.3 bslib_0.5.1 bit64_4.0.5 tools_4.3.1
## [37] cachem_1.0.8