Contexto y objetivos del cuaderno
“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("C:\\Users\\María Isabel\\Desktop\\Geomática básica Isabel\\GB2\\Ejerciciosr\\Cuaderno 1\\EVA.csv")
## Rows: 206068 Columns: 17
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (10): DEPARTAMENTO, MUNICIPIO, GRUPO
## DE CULTIVO, SUBGRUPO
## DE CULTIVO, ...
## dbl (7): CÓD.
## DEP., CÓD. MUN., AÑO, Área Sembrada
## (ha), Área Cosechada
## (ha...
##
## ℹ 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.
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 dichos atributos para facilitar su lectura. Para esto, primero se debe crear un vector que contenga una concatenación con los nuevos nombres. Hecho lo anterior se utiliza la función names en EVA para asignar el vector que contiene los nuevos nombres
nombres<-c("COD_DEP", "DEPARTAMENTO", "COD_MUN", "MUNICIPIO", "GRUPO_CULTIVO", "SUBGRUPO_CULTIVO", "CULTIVO", "DESAG", "YEAR", "PERIOD", "AREA_SIEMBRA", "AREA_COSECHA", "PRODUCCION", "RENDIMIENTO", "ESTADO", "NOMBRE_CIENTIFICO", "CICLO" )
names(EVA)<-nombres
names(EVA)
## [1] "COD_DEP" "DEPARTAMENTO" "COD_MUN"
## [4] "MUNICIPIO" "GRUPO_CULTIVO" "SUBGRUPO_CULTIVO"
## [7] "CULTIVO" "DESAG" "YEAR"
## [10] "PERIOD" "AREA_SIEMBRA" "AREA_COSECHA"
## [13] "PRODUCCION" "RENDIMIENTO" "ESTADO"
## [16] "NOMBRE_CIENTIFICO" "CICLO"
head(EVA)
## # A tibble: 6 × 17
## COD_DEP DEPARTAME…¹ COD_MUN MUNIC…² GRUPO…³ SUBGR…⁴ CULTIVO DESAG YEAR PERIOD
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 15 BOYACA 15114 BUSBAN… HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## 2 25 CUNDINAMAR… 25754 SOACHA HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## 3 25 CUNDINAMAR… 25214 COTA HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## 4 54 NORTE DE S… 54405 LOS PA… HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## 5 54 NORTE DE S… 54518 PAMPLO… HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## 6 68 SANTANDER 68377 LA BEL… HORTAL… ACELGA ACELGA ACEL… 2006 2006B
## # … with 7 more variables: AREA_SIEMBRA <dbl>, AREA_COSECHA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO <chr>, NOMBRE_CIENTIFICO <chr>,
## # CICLO <chr>, and abbreviated variable names ¹DEPARTAMENTO, ²MUNICIPIO,
## # ³GRUPO_CULTIVO, ⁴SUBGRUPO_CULTIVO
Es necesario tener en cuenta únicamente la información relevante para el departamento del Guaviare, por tanto esta se debe filtrar
gvare2018<-dplyr::filter(EVA, DEPARTAMENTO == "GUAVIARE")
gvare2018
## # A tibble: 487 × 17
## COD_DEP DEPARTAM…¹ COD_MUN MUNIC…² GRUPO…³ SUBGR…⁴ CULTIVO DESAG YEAR PERIOD
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 95 GUAVIARE 95001 SAN JO… HORTAL… AHUYAMA AHUYAMA AHUY… 2009 2009B
## 2 95 GUAVIARE 95200 MIRAFL… OLEAGI… AJONJO… AJONJO… AJON… 2009 2009A
## 3 95 GUAVIARE 95200 MIRAFL… FRUTAL… FRUTAL… ARAZA ARAZA 2008 2008
## 4 95 GUAVIARE 95001 SAN JO… FRUTAL… FRUTAL… ARAZA ARAZA 2008 2008
## 5 95 GUAVIARE 95025 EL RET… FRUTAL… FRUTAL… ARAZA ARAZA 2008 2008
## 6 95 GUAVIARE 95200 MIRAFL… FRUTAL… FRUTAL… ARAZA ARAZA 2009 2009
## 7 95 GUAVIARE 95001 SAN JO… FRUTAL… FRUTAL… ARAZA ARAZA 2009 2009
## 8 95 GUAVIARE 95025 EL RET… FRUTAL… FRUTAL… ARAZA ARAZA 2009 2009
## 9 95 GUAVIARE 95200 MIRAFL… CEREAL… ARROZ ARROZ ARRO… 2006 2006B
## 10 95 GUAVIARE 95200 MIRAFL… CEREAL… ARROZ ARROZ ARRO… 2007 2007A
## # … with 477 more rows, 7 more variables: AREA_SIEMBRA <dbl>,
## # AREA_COSECHA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO <chr>, and abbreviated variable names
## # ¹DEPARTAMENTO, ²MUNICIPIO, ³GRUPO_CULTIVO, ⁴SUBGRUPO_CULTIVO
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 (es decir desde el año 2007 al 2018) de cada uno de ellos:
gvare2018 %>%
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
gvare2018 %>%
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
gvare2018 %>%
group_by(GRUPO_CULTIVO, MUNICIPIO) %>%
summarize(produccion_maxima = max(PRODUCCION, na.rm = TRUE)) %>%
slice(which.max(produccion_maxima))%>%
arrange(desc(produccion_maxima))
## `summarise()` has grouped output by 'GRUPO_CULTIVO'. You can override using the
## `.groups` argument.
## # A tibble: 9 × 3
## # Groups: GRUPO_CULTIVO [9]
## GRUPO_CULTIVO MUNICIPIO produccion_maxima
## <chr> <chr> <dbl>
## 1 TUBERCULOS Y PLATANOS EL RETORNO 23688
## 2 FRUTALES SAN JOSE DEL GUAVIARE 5495
## 3 CEREALES SAN JOSE DEL GUAVIARE 4108
## 4 OTROS PERMANENTES EL RETORNO 3600
## 5 FORESTALES EL RETORNO 665
## 6 HORTALIZAS SAN JOSE DEL GUAVIARE 200
## 7 LEGUMINOSAS MIRAFLORES 70
## 8 FLORES Y FOLLAJES SAN JOSE DEL GUAVIARE 11
## 9 OLEAGINOSAS MIRAFLORES 6
Ahora se puede seleccionar un grupo de cultivo y exportar para reutilizar. En primer lugar se elige el grupo de cultivo más representivo en términos de producción; tubérculos y plátanos
gvare2018 %>%
group_by(COD_MUN,MUNICIPIO,GRUPO_CULTIVO)%>%
filter(GRUPO_CULTIVO=="TUBERCULOS Y PLATANOS")%>%
summarize(produccion_maxima=max(PRODUCCION, na.rm = TRUE))%>%
arrange(desc(produccion_maxima))->tuberculos_platano2018
## `summarise()` has grouped output by 'COD_MUN', 'MUNICIPIO'. You can override
## using the `.groups` argument.
Con el fin de hacer un ejercicio comparativo, también se toma como referencia el segundo grupo de cultivos; Frutales
gvare2018%>%
group_by(COD_MUN,MUNICIPIO,GRUPO_CULTIVO)%>%
filter(GRUPO_CULTIVO=="FRUTALES")%>%
summarize(produccion_maxima=max(PRODUCCION, na.rm = TRUE))%>%
arrange(desc(produccion_maxima))->frutales2018
## `summarise()` has grouped output by 'COD_MUN', 'MUNICIPIO'. You can override
## using the `.groups` argument.
Ahora los datos seleccionados se escriben en un archivo
write_csv(tuberculos_platano2018, "./guaviare_tuberculos_platano.csv")
write_csv(frutales2018,"./guaviare_frutales.csv")