Introducción

Este es un cuaderno muy simple que ilustra cómo subconjuntos de datos de estadísticas 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.

Requisitos previos Se supone que ya descargó el archivo xlsx mencionado anteriormente y lo guardó 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:

Luego, debe modificar el archivo original para eliminar las imagenes y cacillas porque que posoblemente no son leidas en R, ademas de cambiar el nombre de las columnas para poder leerlo mas facilmente desde R. No debe haber espacios en blanco ni caracteres extraños en el nombre de ninguna columna.

Setup

Limpiar la memoria temporarl de R

rm(list = ls())

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

Leer la base de datos “EVA 2019-2022

list.files()
##  [1] "01.qgz"                                                  
##  [2] "BaseEVA_Agrícola20192022.xlsx"                           
##  [3] "Capturacafe.PNG"                                         
##  [4] "Diccionario_Datos_Niveles_Variables_MGN_CNPV2018Int.xlsx"
##  [5] "EVA_19_22.xlsx"                                          
##  [6] "EVA_28_22.xlsx"                                          
##  [7] "huila_frutales_2022.csv"                                 
##  [8] "Huila_Mun.gpkg"                                          
##  [9] "MGN_ANM_MPIOS.dbf"                                       
## [10] "MGN_ANM_MPIOS.prj"                                       
## [11] "MGN_ANM_MPIOS.sbn"                                       
## [12] "MGN_ANM_MPIOS.sbx"                                       
## [13] "MGN_ANM_MPIOS.shp"                                       
## [14] "MGN_ANM_MPIOS.shp.xml"                                   
## [15] "MGN_ANM_MPIOS.shx"                                       
## [16] "PROYECTO_EVA.html"                                       
## [17] "PROYECTO_EVA.Rmd"                                        
## [18] "rsconnect"                                               
## [19] "upra.png"

Cargar las librerias de R

En este caso necesitamos el archivo “EVA_19_22.xlsx”, como se trata de excel es bueno saber cuantas hojas hay.

hojas <- excel_sheets("EVA_19_22.xlsx")

vamos a ver

hojas
## [1] "DatosEVA2019-2022"

Como hay una sola hoja, vamos a leerla

EVA19_22= read_excel("EVA_19_22.xlsx")
EVA19_22
## # A tibble: 91,777 × 12
##    COD_DPTO DEPTO    COD_MUN MUNICIPIO CULTIVO GRUPO SUBGRUPO  YEAR AREA_SIEMBRA
##    <chr>    <chr>    <chr>   <chr>     <chr>   <chr> <chr>    <dbl>        <dbl>
##  1 05       Antioqu… 05001   Medellín  Aguaca… Frut… Demas f…  2019         24  
##  2 05       Antioqu… 05001   Medellín  Brevo   Frut… Demas f…  2019         15  
##  3 05       Antioqu… 05001   Medellín  Fresa   Frut… Demas f…  2019         29  
##  4 05       Antioqu… 05001   Medellín  Guayaba Frut… Mirtáce…  2019          2.5
##  5 05       Antioqu… 05001   Medellín  Lima    Frut… Cítricos  2019          7.5
##  6 05       Antioqu… 05001   Medellín  Mandar… Frut… Cítricos  2019         14.5
##  7 05       Antioqu… 05001   Medellín  Mango   Frut… Demas f…  2019          8  
##  8 05       Antioqu… 05001   Medellín  Mora    Frut… Demas f…  2019        146  
##  9 05       Antioqu… 05001   Medellín  Naranja Frut… Cítricos  2019         12.5
## 10 05       Antioqu… 05001   Medellín  Plátano Frut… Demas f…  2019        160  
## # ℹ 91,767 more rows
## # ℹ 3 more variables: AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>

Tengamos en cuenta que la columna COD_MUN es un caracter (chr). este es el tipo de datoos comun para identificadores.

Datos de subconjuto para el departamento.

Como estamos interesados solo en un departmaneto , Huila, lo filtramos.

(huila19_22 = dplyr::filter(EVA19_22, DEPTO == "Huila"))
## # A tibble: 6,564 × 12
##    COD_DPTO DEPTO COD_MUN MUNICIPIO CULTIVO    GRUPO SUBGRUPO  YEAR AREA_SIEMBRA
##    <chr>    <chr> <chr>   <chr>     <chr>      <chr> <chr>    <dbl>        <dbl>
##  1 41       Huila 41001   Neiva     Aguacate   Frut… Demas f…  2019        128  
##  2 41       Huila 41001   Neiva     Badea      Frut… Pasiflo…  2019         20  
##  3 41       Huila 41001   Neiva     Banano     Frut… Demas f…  2019        279  
##  4 41       Huila 41001   Neiva     Curuba     Frut… Pasiflo…  2019         10  
##  5 41       Huila 41001   Neiva     Granadilla Frut… Pasiflo…  2019         25  
##  6 41       Huila 41001   Neiva     Guanábana  Frut… Anonáce…  2019         39  
##  7 41       Huila 41001   Neiva     Gulupa o … Frut… Pasiflo…  2019         21.5
##  8 41       Huila 41001   Neiva     Lulo       Frut… Solanác…  2019         50  
##  9 41       Huila 41001   Neiva     Mango      Frut… Demas f…  2019         16  
## 10 41       Huila 41001   Neiva     Maracuyá   Frut… Pasiflo…  2019         42  
## # ℹ 6,554 more rows
## # ℹ 3 more variables: AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>

Ahora seleccionaremos los datos mas recientes, año 2022.

(huila_22 = dplyr::filter(huila19_22, YEAR == 2022))
## # A tibble: 1,767 × 12
##    COD_DPTO DEPTO COD_MUN MUNICIPIO CULTIVO    GRUPO SUBGRUPO  YEAR AREA_SIEMBRA
##    <chr>    <chr> <chr>   <chr>     <chr>      <chr> <chr>    <dbl>        <dbl>
##  1 41       Huila 41001   Neiva     Aguacate   Frut… Demas f…  2022       160   
##  2 41       Huila 41001   Neiva     Badea      Frut… Pasiflo…  2022        26   
##  3 41       Huila 41001   Neiva     Banano     Frut… Demas f…  2022       297   
##  4 41       Huila 41001   Neiva     Curuba     Frut… Pasiflo…  2022        26   
##  5 41       Huila 41001   Neiva     Granadilla Frut… Pasiflo…  2022        30.5 
##  6 41       Huila 41001   Neiva     Guanábana  Frut… Anonáce…  2022        43.5 
##  7 41       Huila 41001   Neiva     Gulupa o … Frut… Pasiflo…  2022        27.5 
##  8 41       Huila 41001   Neiva     Limón      Frut… Cítricos  2022         3.73
##  9 41       Huila 41001   Neiva     Limón      Frut… Cítricos  2022       137.  
## 10 41       Huila 41001   Neiva     Lulo       Frut… Solanác…  2022        58   
## # ℹ 1,757 more rows
## # ℹ 3 more variables: AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>

Subconjunto del grupo de cultivos a analizar

Seleccionamos el cultivo de interes y resumimos la produccion por municipio.

huila_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: 37 × 4
## # Groups:   COD_MUN, MUNICIPIO [37]
##    COD_MUN MUNICIPIO   GRUPO    max_prod
##    <chr>   <chr>       <chr>       <dbl>
##  1 41298   Garzón      Frutales   41745 
##  2 41551   Pitalito    Frutales   31434 
##  3 41020   Algeciras   Frutales   12516 
##  4 41359   Isnos       Frutales   11487.
##  5 41006   Acevedo     Frutales   11328 
##  6 41799   Tello       Frutales    9960 
##  7 41530   Palestina   Frutales    8608 
##  8 41001   Neiva       Frutales    8388.
##  9 41676   Santa María Frutales    8169 
## 10 41306   Gigante     Frutales    7452.
## # ℹ 27 more rows

Escribe los datos

Usaremos la libreria readr para guardar nuestros datos en formato csv :

write_csv(frutales2022, "huila_frutales_2022.csv")

Comprobaremos que el archivo .csv halla sido creado:

list.files()
##  [1] "01.qgz"                                                  
##  [2] "BaseEVA_Agrícola20192022.xlsx"                           
##  [3] "Capturacafe.PNG"                                         
##  [4] "Diccionario_Datos_Niveles_Variables_MGN_CNPV2018Int.xlsx"
##  [5] "EVA_19_22.xlsx"                                          
##  [6] "EVA_28_22.xlsx"                                          
##  [7] "huila_frutales_2022.csv"                                 
##  [8] "Huila_Mun.gpkg"                                          
##  [9] "MGN_ANM_MPIOS.dbf"                                       
## [10] "MGN_ANM_MPIOS.prj"                                       
## [11] "MGN_ANM_MPIOS.sbn"                                       
## [12] "MGN_ANM_MPIOS.sbx"                                       
## [13] "MGN_ANM_MPIOS.shp"                                       
## [14] "MGN_ANM_MPIOS.shp.xml"                                   
## [15] "MGN_ANM_MPIOS.shx"                                       
## [16] "PROYECTO_EVA.html"                                       
## [17] "PROYECTO_EVA.Rmd"                                        
## [18] "rsconnect"                                               
## [19] "upra.png"

Leamos el archivo para verificar que los datos esten correctos:

los_datos22 <- read_csv("huila_frutales_2022.csv")
## Rows: 37 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: 37 × 4
##    COD_MUN MUNICIPIO   GRUPO    max_prod
##      <dbl> <chr>       <chr>       <dbl>
##  1   41298 Garzón      Frutales   41745 
##  2   41551 Pitalito    Frutales   31434 
##  3   41020 Algeciras   Frutales   12516 
##  4   41359 Isnos       Frutales   11487.
##  5   41006 Acevedo     Frutales   11328 
##  6   41799 Tello       Frutales    9960 
##  7   41530 Palestina   Frutales    8608 
##  8   41001 Neiva       Frutales    8388.
##  9   41676 Santa María Frutales    8169 
## 10   41306 Gigante     Frutales    7452.
## # ℹ 27 more rows

Tenga en cuenta que la columna COD_MUN ahora es doble (es decir, numérica(dbl)). 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 41298   Garzón    Frutales   41745 
## 2 41551   Pitalito  Frutales   31434 
## 3 41020   Algeciras Frutales   12516 
## 4 41359   Isnos     Frutales   11487.
## 5 41006   Acevedo   Frutales   11328 
## 6 41799   Tello     Frutales    9960

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

Referencias

ESte cuaderno puede encontrarse publicado en : https://rpubs.com/alejandrotrianComoleerycrearsubconjuntosxlsx2

Reprodutividad

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