El presente cuaderno es una guia, que a través de la información agropecuaria del departamento del Guaviare, brinda pautas respecto a la manipulación de datos por medio de la libreria de Tidyverse, la cual, como sombrilla de otras librerias, es una excelente herramienta para el manejo y análisis de la información. Cabe resaltar que el resultado obtenido a partir de este cuaderno, permitirá el desarrollo del segundo cuaderno, por ello su adecuada ejecución es imprescindible.
Algunos de los objetivos que se espera cumplir con el cuaderno son:
En esta sección escribimos código para cargar todas las librerias que necesitamos
library(tidyverse)
En esta sección vamos a leer el archivo con los datos de estadísticas agropecuarias municipales y los describimos
EVA<-read_csv("F:\\GBI\\GB2\\Ejerciciosr\\Cuaderno1\\EVA.csv")
Revisemos el encabezado de EVA:
head(EVA)
## # A tibble: 6 × 17
## CÓD. \…¹ DEPAR…² CÓD. …³ MUNIC…⁴ GRUPO…⁵ SUBGR…⁶ CULTIVO DESAG…⁷ AÑO PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 15 BOYACA 15114 BUSBAN… HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## 2 25 CUNDIN… 25754 SOACHA HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## 3 25 CUNDIN… 25214 COTA HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## 4 54 NORTE … 54405 LOS PA… HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## 5 54 NORTE … 54518 PAMPLO… HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## 6 68 SANTAN… 68377 LA BEL… HORTAL… ACELGA ACELGA ACELGA 2006 2006B
## # … with 7 more variables: `Área Sembrada\n(ha)` <dbl>,
## # `Área Cosechada\n(ha)` <dbl>, `Producción\n(t)` <dbl>,
## # `Rendimiento\n(t/ha)` <dbl>, `ESTADO FISICO PRODUCCION` <chr>,
## # `NOMBRE \nCIENTIFICO` <chr>, `CICLO DE CULTIVO` <chr>, and abbreviated
## # variable names ¹`CÓD. \nDEP.`, ²DEPARTAMENTO, ³`CÓD. MUN.`, ⁴MUNICIPIO,
## # ⁵`GRUPO \nDE CULTIVO`, ⁶`SUBGRUPO \nDE CULTIVO`,
## # ⁷`DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO`
Revisemos el nombre de los atributos de las evaluaciones agropecuarias:
names(EVA)
## [1] "CÓD. \nDEP."
## [2] "DEPARTAMENTO"
## [3] "CÓD. MUN."
## [4] "MUNICIPIO"
## [5] "GRUPO \nDE CULTIVO"
## [6] "SUBGRUPO \nDE CULTIVO"
## [7] "CULTIVO"
## [8] "DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO"
## [9] "AÑO"
## [10] "PERIODO"
## [11] "Área Sembrada\n(ha)"
## [12] "Área Cosechada\n(ha)"
## [13] "Producción\n(t)"
## [14] "Rendimiento\n(t/ha)"
## [15] "ESTADO FISICO PRODUCCION"
## [16] "NOMBRE \nCIENTIFICO"
## [17] "CICLO DE CULTIVO"
Cambiemos los nombres de la tabla:
nombres<-c("COD_DEP", "DEPARTAMENTO", "COD_MUN","MUNICIPIO","GRUPO", "SUBGRUPO", "CULTIVO", "DESAG", "YEAR", "PERIODO", "AREA_SIEMBRA","AREA_COSECHA","PRODUCCION","RENDIMIENTO", "ESTADO_FISICO","NOMBRE_CIENTIFICO", "CICLO_CULTIVO")
names(EVA)<-nombres
EVA
## # A tibble: 206,068 × 17
## COD_DEP DEPARTAME…¹ COD_MUN MUNIC…² GRUPO SUBGR…³ CULTIVO DESAG YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 15 BOYACA 15114 BUSBAN… HORT… ACELGA ACELGA ACEL… 2006 2006B
## 2 25 CUNDINAMAR… 25754 SOACHA HORT… ACELGA ACELGA ACEL… 2006 2006B
## 3 25 CUNDINAMAR… 25214 COTA HORT… ACELGA ACELGA ACEL… 2006 2006B
## 4 54 NORTE DE S… 54405 LOS PA… HORT… ACELGA ACELGA ACEL… 2006 2006B
## 5 54 NORTE DE S… 54518 PAMPLO… HORT… ACELGA ACELGA ACEL… 2006 2006B
## 6 68 SANTANDER 68377 LA BEL… HORT… ACELGA ACELGA ACEL… 2006 2006B
## 7 25 CUNDINAMAR… 25754 SOACHA HORT… ACELGA ACELGA ACEL… 2007 2007A
## 8 25 CUNDINAMAR… 25214 COTA HORT… ACELGA ACELGA ACEL… 2007 2007A
## 9 54 NORTE DE S… 54518 PAMPLO… HORT… ACELGA ACELGA ACEL… 2007 2007A
## 10 68 SANTANDER 68377 LA BEL… HORT… ACELGA ACELGA ACEL… 2007 2007A
## # … with 206,058 more rows, 7 more variables: AREA_SIEMBRA <dbl>,
## # AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>,
## # ESTADO_FISICO <chr>, NOMBRE_CIENTIFICO <chr>, CICLO_CULTIVO <chr>, and
## # abbreviated variable names ¹DEPARTAMENTO, ²MUNICIPIO, ³SUBGRUPO
Es necesario tener en cuenta únicamente la información relevante para el departamento del Guaviare, por tanto, se debe filtrar la información
gvare2020<-dplyr::filter(EVA, DEPARTAMENTO=="GUAVIARE")
gvare2020
## # A tibble: 487 × 17
## COD_DEP DEPARTAME…¹ COD_MUN MUNIC…² GRUPO SUBGR…³ CULTIVO DESAG YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 95 GUAVIARE 95001 SAN JO… HORT… AHUYAMA AHUYAMA AHUY… 2009 2009B
## 2 95 GUAVIARE 95200 MIRAFL… OLEA… AJONJO… AJONJO… AJON… 2009 2009A
## 3 95 GUAVIARE 95200 MIRAFL… FRUT… FRUTAL… ARAZA ARAZA 2008 2008
## 4 95 GUAVIARE 95001 SAN JO… FRUT… FRUTAL… ARAZA ARAZA 2008 2008
## 5 95 GUAVIARE 95025 EL RET… FRUT… FRUTAL… ARAZA ARAZA 2008 2008
## 6 95 GUAVIARE 95200 MIRAFL… FRUT… FRUTAL… ARAZA ARAZA 2009 2009
## 7 95 GUAVIARE 95001 SAN JO… FRUT… FRUTAL… ARAZA ARAZA 2009 2009
## 8 95 GUAVIARE 95025 EL RET… FRUT… FRUTAL… ARAZA ARAZA 2009 2009
## 9 95 GUAVIARE 95200 MIRAFL… CERE… ARROZ ARROZ ARRO… 2006 2006B
## 10 95 GUAVIARE 95200 MIRAFL… CERE… ARROZ ARROZ ARRO… 2007 2007A
## # … with 477 more rows, 7 more variables: AREA_SIEMBRA <dbl>,
## # AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>,
## # ESTADO_FISICO <chr>, NOMBRE_CIENTIFICO <chr>, CICLO_CULTIVO <chr>, and
## # abbreviated variable names ¹DEPARTAMENTO, ²MUNICIPIO, ³SUBGRUPO
Con el fin de limpiar los datos filtrados para nuestro departamento hacemos lo siguiente
gvare2020.tmp<-gvare2020 %>% select("COD_MUN":"CICLO_CULTIVO")
gvare2020.tmp
## # A tibble: 487 × 15
## COD_MUN MUNICIPIO GRUPO SUBGR…¹ CULTIVO DESAG YEAR PERIODO AREA_…² AREA_…³
## <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr> <dbl> <dbl>
## 1 95001 SAN JOSE D… HORT… AHUYAMA AHUYAMA AHUY… 2009 2009B 20 20
## 2 95200 MIRAFLORES OLEA… AJONJO… AJONJO… AJON… 2009 2009A 30 30
## 3 95200 MIRAFLORES FRUT… FRUTAL… ARAZA ARAZA 2008 2008 122 75
## 4 95001 SAN JOSE D… FRUT… FRUTAL… ARAZA ARAZA 2008 2008 66 66
## 5 95025 EL RETORNO FRUT… FRUTAL… ARAZA ARAZA 2008 2008 30 0
## 6 95200 MIRAFLORES FRUT… FRUTAL… ARAZA ARAZA 2009 2009 122 75
## 7 95001 SAN JOSE D… FRUT… FRUTAL… ARAZA ARAZA 2009 2009 66 66
## 8 95025 EL RETORNO FRUT… FRUTAL… ARAZA ARAZA 2009 2009 30 0
## 9 95200 MIRAFLORES CERE… ARROZ ARROZ ARRO… 2006 2006B 10 10
## 10 95200 MIRAFLORES CERE… ARROZ ARROZ ARRO… 2007 2007A 25 25
## # … with 477 more rows, 5 more variables: PRODUCCION <dbl>, RENDIMIENTO <dbl>,
## # ESTADO_FISICO <chr>, NOMBRE_CIENTIFICO <chr>, CICLO_CULTIVO <chr>, and
## # abbreviated variable names ¹SUBGRUPO, ²AREA_SIEMBRA, ³AREA_COSECHA
Diversas tareas de análisis de datos se pueden llevar a cabo a través de la metodología separar-aplicar-combinar, que consiste en separar los datos en grupos, aplicar algunos análisis a cada grupo, y luego combinar los datos. Con R esto se puede hacer con la función group_by
Para ello comenzaremos por agrupar los cultivos del Guaviare y la producción total de cada uno de ellos:
gvare2020 %>%
filter(PRODUCCION>0)%>%
group_by(CULTIVO)%>%
summarize(produccion_total=sum(PRODUCCION)) %>%
arrange(desc(produccion_total))
## # A tibble: 22 × 2
## CULTIVO produccion_total
## <chr> <dbl>
## 1 PLATANO 321834
## 2 YUCA 244028
## 3 ARROZ 103570
## 4 MAIZ 98129
## 5 PIÑA 32430
## 6 CAÑA PANELERA 23003
## 7 CHONTADURO 12620
## 8 PATILLA 5460
## 9 CAUCHO 5045
## 10 CAÑA MIEL 5002
## # … with 12 more rows
Los resultados obtenidos corresponden de este modo a los cultivos más importantes del departamento del Guaviare. En ese sentido también resulta interesante conocer los municipios que tienen mayor participación en la producción en el cultivo de interés
gvare2020 %>%
group_by(CULTIVO, MUNICIPIO) %>%
summarize(produccion_maxima=max(PRODUCCION, na.rm = TRUE )) %>%
slice(which.max(produccion_maxima))%>%
arrange(desc(produccion_maxima))
## `summarise()` has grouped output by 'CULTIVO'. You can override using the
## `.groups` argument.
## # A tibble: 25 × 3
## # Groups: CULTIVO [25]
## CULTIVO MUNICIPIO produccion_maxima
## <chr> <chr> <dbl>
## 1 PLATANO EL RETORNO 23688
## 2 YUCA SAN JOSE DEL GUAVIARE 14170
## 3 PIÑA SAN JOSE DEL GUAVIARE 5495
## 4 CHONTADURO EL RETORNO 4352
## 5 ARROZ SAN JOSE DEL GUAVIARE 4108
## 6 CAÑA PANELERA EL RETORNO 3600
## 7 MAIZ SAN JOSE DEL GUAVIARE 3300
## 8 PATILLA EL RETORNO 1890
## 9 CAUCHO EL RETORNO 665
## 10 CAÑA MIEL CALAMAR 475
## # … with 15 more rows
También se puede hacer el mismo procedimiento pero particularmente para grupos de cultivos
Ahora se seleccionará un grupo de cultivos y se exportaran los datos para futuro uso
gvare2020 %>%
group_by(COD_MUN, MUNICIPIO, GRUPO)%>%
filter(GRUPO=="TUBERCULOS Y PLATANO") %>%
summarize(produccion_maxima = max(PRODUCCION, na.rm = TRUE))%>%
arrange(desc(produccion_maxima))->TUBERCULOS_PLATANO
Lizarazo, I. Reading and processing municipal agricultural statistics for 2020. Available at: https://rpubs.com/ials2un/readingEVAv1.
sessionInfo()
## R version 4.2.2 (2022-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 22621)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=English_United States.utf8
## [2] LC_CTYPE=English_United States.utf8
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C
## [5] LC_TIME=English_United States.utf8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] lubridate_1.9.2 forcats_1.0.0 stringr_1.5.0 dplyr_1.1.0
## [5] purrr_1.0.1 readr_2.1.4 tidyr_1.3.0 tibble_3.1.8
## [9] ggplot2_3.4.1 tidyverse_2.0.0
##
## loaded via a namespace (and not attached):
## [1] bslib_0.4.2 compiler_4.2.2 pillar_1.8.1 jquerylib_0.1.4
## [5] tools_4.2.2 bit_4.0.5 digest_0.6.31 timechange_0.2.0
## [9] jsonlite_1.8.4 evaluate_0.20 lifecycle_1.0.3 gtable_0.3.1
## [13] pkgconfig_2.0.3 rlang_1.0.6 cli_3.6.0 rstudioapi_0.14
## [17] parallel_4.2.2 yaml_2.3.7 xfun_0.37 fastmap_1.1.1
## [21] withr_2.5.0 knitr_1.42 hms_1.1.2 generics_0.1.3
## [25] vctrs_0.5.2 sass_0.4.5 bit64_4.0.5 grid_4.2.2
## [29] tidyselect_1.2.0 glue_1.6.2 R6_2.5.1 fansi_1.0.4
## [33] vroom_1.6.1 rmarkdown_2.20 tzdb_0.3.0 magrittr_2.0.3
## [37] ellipsis_0.3.2 scales_1.2.1 htmltools_0.5.4 colorspace_2.1-0
## [41] utf8_1.2.3 stringi_1.7.12 munsell_0.5.0 cachem_1.0.7
## [45] crayon_1.5.2