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.nb.html"                                    
## [18] "PROYECTO_EVA.Rmd"                                        
## [19] "PROYECTO_EVA02.html"                                     
## [20] "PROYECTO_EVA02.Rmd"                                      
## [21] "rsconnect"

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.nb.html"                                    
## [18] "PROYECTO_EVA.Rmd"                                        
## [19] "PROYECTO_EVA02.html"                                     
## [20] "PROYECTO_EVA02.Rmd"                                      
## [21] "rsconnect"

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

Referencia de la imagen: https://cafeguias.com/cafe-huila/#:~:text=En%20Huila%20se%20dedican%20unas%20154.000%20hect%C3%A1reas%20al,que%20se%20considerar%C3%ADa%20un%20cultivo%20del%20caf%C3%A9%20minifundista.

ESte cuaderno puede encontrarse en https://rpubs.com/alejandrotrian

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