Este es un cuaderno muy simple que ilustra los subconjuntos de Datos agricolas EVA 2019 -2022 proporcionados por la UPRA en https://upra.gov.co/es-co/Evas_Documentos/BaseEVA_Agr%C3%ADcola20192022.xlsx.
Descargue el documento anterior y guardelo en el mismo directorio donde se encuentra este cuaderno Cuando se abre en Excel, las primeras filas del archivo BaseEVA_Agricola20192022.xlsx tienen este aspecto:
Es necesario limpiar el archivo original para eliminar los banners y cambiar el nombre de las columnas que no puedan ser leidos en R. No debe haber espacios en blanco ni caracteres extraños como tildes.
Limpiar memoria
rm(list=ls())
Instalar 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
Comprobemos los nombres de los archivos que se encuentran en el mismo directorio que este cuaderno:
list.files()
## [1] "aguacate.jpg" "BaseEVA_Agricola20192022.xlsx"
## [3] "Cuaderno_aguacate.html" "Cuaderno_aguacate.pdf"
## [5] "Cuaderno_aguacate.Rmd" "Cuaderno_aguacate.Santander.Rmd"
## [7] "Cuaderno_Join.html" "Cuaderno_Join.nb.html"
## [9] "Cuaderno_Join.Rmd" "Cuaderno_mapa.tematico.html"
## [11] "Cuaderno_mapa.tematico.nb.html" "Cuaderno_mapa.tematico.Rmd"
## [13] "datos" "imagen.upra.png"
## [15] "Librerias" "P6.GB2"
## [17] "Proyecto 6.qgz" "rsconnect"
## [19] "stder_frutales_2022.csv"
En este caso el archivo fijo es BaseEVA_Agricola20192022.xlsx
Como se trata de un archivo excel, conviene saber cuántas hojas hay:
hojas <- excel_sheets("BaseEVA_Agricola20192022.xlsx")
Veamos
hojas
## [1] "DatosEVA2019-2022"
Solo hay una hora, vamos a leerla.
EVA19_22 <- read_excel("BaseEVA_Agricola20192022.xlsx")
EVA19_22
## # A tibble: 91,777 × 13
## `\r\nCOD_DPTO` DPTO COD_MUN MUNICIPIO CULTIVO GRUPO Subgrupo YEAR PERIODO
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 05 Antioq… 05001 MedellÃn Aguaca… Frut… Demas f… 2019 2019
## 2 05 Antioq… 05001 MedellÃn Brevo Frut… Demas f… 2019 2019
## 3 05 Antioq… 05001 MedellÃn Fresa Frut… Demas f… 2019 2019
## 4 05 Antioq… 05001 MedellÃn Guayaba Frut… Mirtáce… 2019 2019
## 5 05 Antioq… 05001 MedellÃn Lima Frut… CÃtricos 2019 2019
## 6 05 Antioq… 05001 MedellÃn Mandar… Frut… CÃtricos 2019 2019
## 7 05 Antioq… 05001 MedellÃn Mango Frut… Demas f… 2019 2019
## 8 05 Antioq… 05001 MedellÃn Mora Frut… Demas f… 2019 2019
## 9 05 Antioq… 05001 MedellÃn Naranja Frut… CÃtricos 2019 2019
## 10 05 Antioq… 05001 MedellÃn Plátano Frut… Demas f… 2019 2019
## # ℹ 91,767 more rows
## # ℹ 4 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>
Tenga en cuenta que la columna COD_MUN es un carácter. Este es el tipo de datos común para los identificadores.
Como solo estamos interesados en un un departamento, es necesario filtrar EVA19_22:
(Santander19_22 = dplyr::filter(EVA19_22, DPTO == "Santander"))
## # A tibble: 7,117 × 13
## `\r\nCOD_DPTO` DPTO COD_MUN MUNICIPIO CULTIVO GRUPO Subgrupo YEAR PERIODO
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 68 Santan… 68001 Bucarama… Aguaca… Frut… Demas f… 2019 2019
## 2 68 Santan… 68001 Bucarama… Guanáb… Frut… Anonáce… 2019 2019
## 3 68 Santan… 68001 Bucarama… Limón Frut… CÃtricos 2019 2019
## 4 68 Santan… 68001 Bucarama… Naranja Frut… CÃtricos 2019 2019
## 5 68 Santan… 68001 Bucarama… Pitaha… Frut… Demas f… 2019 2019
## 6 68 Santan… 68001 Bucarama… Plátano Frut… Demas f… 2019 2019
## 7 68 Santan… 68001 Bucarama… Uva Frut… Demas f… 2019 2019
## 8 68 Santan… 68001 Bucarama… MaÃz Cere… Cereales 2019 2019A
## 9 68 Santan… 68001 Bucarama… Tomate Hort… Hortali… 2019 2019A
## 10 68 Santan… 68001 Bucarama… Habich… Legu… Legumin… 2019 2019A
## # ℹ 7,107 more rows
## # ℹ 4 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>
Ahora, seleccionaremos solo datos de 2022:
(Santander_22 = dplyr::filter(Santander19_22, YEAR == 2022))
## # A tibble: 1,944 × 13
## `\r\nCOD_DPTO` DPTO COD_MUN MUNICIPIO CULTIVO GRUPO Subgrupo YEAR PERIODO
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 68 Santan… 68001 Bucarama… Aguaca… Frut… Demas f… 2022 2022
## 2 68 Santan… 68001 Bucarama… Guanáb… Frut… Anonáce… 2022 2022
## 3 68 Santan… 68001 Bucarama… Limón Frut… CÃtricos 2022 2022
## 4 68 Santan… 68001 Bucarama… Naranja Frut… CÃtricos 2022 2022
## 5 68 Santan… 68001 Bucarama… Pitaha… Frut… Demas f… 2022 2022
## 6 68 Santan… 68001 Bucarama… Plátano Frut… Demas f… 2022 2022
## 7 68 Santan… 68001 Bucarama… Uva Frut… Demas f… 2022 2022
## 8 68 Santan… 68001 Bucarama… Tomate Hort… Hortali… 2022 2022A
## 9 68 Santan… 68001 Bucarama… Habich… Legu… Legumin… 2022 2022A
## 10 68 Santan… 68001 Bucarama… Yuca RaÃc… RaÃces … 2022 2022A
## # ℹ 1,934 more rows
## # ℹ 4 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>
Ahora seleccionemos solo el grupo de cultivos que nos interesa y resumamos la producción por municipio:
Santander_22 %>%
group_by(COD_MUN, MUNICIPIO, GRUPO) %>%
filter(GRUPO=='Frutales') %>%
summarize(max_prod = max(PRODUCCION, na.rm = TRUE)) %>%
arrange(desc(max_prod)) -> frutales2022
## `summarise()` has grouped output by 'COD_MUN', 'MUNICIPIO'. You can override
## using the `.groups` argument.
frutales2022
## # A tibble: 86 × 4
## # Groups: COD_MUN, MUNICIPIO [86]
## COD_MUN MUNICIPIO GRUPO max_prod
## <chr> <chr> <chr> <dbl>
## 1 68406 Lebrija Frutales 257865
## 2 68307 Girón Frutales 130860
## 3 68615 Rionegro Frutales 36177
## 4 68755 Socorro Frutales 20640
## 5 68547 Piedecuesta Frutales 16590
## 6 68575 Puerto Wilches Frutales 12552
## 7 68861 Vélez Frutales 11880
## 8 68679 San Gil Frutales 10200
## 9 68524 Palmas del Socorro Frutales 10189
## 10 68689 San Vicente de Chucurà Frutales 9922.
## # ℹ 76 more rows
Usaremos la biblioteca readr para guardar nuestros datos en formato csv:
write_csv(frutales2022, "stder_frutales_2022.csv")
Let’s check that the file has been created:
list.files()
## [1] "aguacate.jpg" "BaseEVA_Agricola20192022.xlsx"
## [3] "Cuaderno_aguacate.html" "Cuaderno_aguacate.pdf"
## [5] "Cuaderno_aguacate.Rmd" "Cuaderno_aguacate.Santander.Rmd"
## [7] "Cuaderno_Join.html" "Cuaderno_Join.nb.html"
## [9] "Cuaderno_Join.Rmd" "Cuaderno_mapa.tematico.html"
## [11] "Cuaderno_mapa.tematico.nb.html" "Cuaderno_mapa.tematico.Rmd"
## [13] "datos" "imagen.upra.png"
## [15] "Librerias" "P6.GB2"
## [17] "Proyecto 6.qgz" "rsconnect"
## [19] "stder_frutales_2022.csv"
Leamos el archivo para comprobar que los datos son correctos:
los_datos22 <- read_csv("stder_frutales_2022.csv")
## Rows: 86 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
## # A tibble: 86 × 4
## COD_MUN MUNICIPIO GRUPO max_prod
## <dbl> <chr> <chr> <dbl>
## 1 68406 Lebrija Frutales 257865
## 2 68307 Girón Frutales 130860
## 3 68615 Rionegro Frutales 36177
## 4 68755 Socorro Frutales 20640
## 5 68547 Piedecuesta Frutales 16590
## 6 68575 Puerto Wilches Frutales 12552
## 7 68861 Vélez Frutales 11880
## 8 68679 San Gil Frutales 10200
## 9 68524 Palmas del Socorro Frutales 10189
## 10 68689 San Vicente de Chucurà Frutales 9922.
## # ℹ 76 more rows
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)
## # A tibble: 6 × 4
## COD_MUN MUNICIPIO GRUPO max_prod
## <chr> <chr> <chr> <dbl>
## 1 68406 Lebrija Frutales 257865
## 2 68307 Girón Frutales 130860
## 3 68615 Rionegro Frutales 36177
## 4 68755 Socorro Frutales 20640
## 5 68547 Piedecuesta Frutales 16590
## 6 68575 Puerto Wilches Frutales 12552
¡Bien hecho! 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 10 x64 (build 19045)
##
## 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 sass_0.4.7
## [13] hms_1.1.3 fansi_1.0.4 rmarkdown_2.24 cellranger_1.1.0
## [17] evaluate_0.21 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.3
## [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