Introduccion

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.

Prerequisitos

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.

1. Configuraciones

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

2. Lea el conjunto de datos EVA 2019-2022

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.

3. Datos de subconjunto para su departamento

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>

4. Subconjunto del grupo de cultivos que estás analizando

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

5. Escribe los datos

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.

6 Bibliografia

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