Este es el cuaderno R Markdown numero 1 para el curso de Geomatica Basica 2023. El objetivo de este, es identificar los cultivos agricolas con mayor produccion en los departamentos de Caldas, Quindio y risaralda. Los datos manejados en este trabajo provienen de un archivo tipo excel el cual contiene las Evaluaciones Agropecuarias Municipales (EVA) elaboradas por la UPRA para el año 2020.
En esta seccion escribimos codigo para cargar las librerias
library(dplyr)
#library(tidyr)
En esta seccion vamos a leer el archivo con los datos de estadisticas agropecuarias municipales y lo describimos
EVA<-read.csv("C:\\Users\\LENOVO\\Desktop\\Geomatica\\R\\EVA.csv")
Revisemos el encabezado de EVA:
head(EVA)
## CÓD...DEP. DEPARTAMENTO CÓD..MUN. MUNICIPIO GRUPO..DE.CULTIVO
## 1 15 BOYACA 15114 BUSBANZA HORTALIZAS
## 2 25 CUNDINAMARCA 25754 SOACHA HORTALIZAS
## 3 25 CUNDINAMARCA 25214 COTA HORTALIZAS
## 4 54 NORTE DE SANTANDER 54405 LOS PATIOS HORTALIZAS
## 5 54 NORTE DE SANTANDER 54518 PAMPLONA HORTALIZAS
## 6 68 SANTANDER 68377 LA BELLEZA HORTALIZAS
## SUBGRUPO..DE.CULTIVO CULTIVO DESAGREGACIÓN.REGIONAL.Y.O.SISTEMA.PRODUCTIVO
## 1 ACELGA ACELGA ACELGA
## 2 ACELGA ACELGA ACELGA
## 3 ACELGA ACELGA ACELGA
## 4 ACELGA ACELGA ACELGA
## 5 ACELGA ACELGA ACELGA
## 6 ACELGA ACELGA ACELGA
## AÑO PERIODO Área.Sembrada..ha. Área.Cosechada..ha. Producción..t.
## 1 2006 2006B 2 1 1
## 2 2006 2006B 82 80 1440
## 3 2006 2006B 2 2 26
## 4 2006 2006B 3 3 48
## 5 2006 2006B 1 1 5
## 6 2006 2006B 1 1 6
## Rendimiento..t.ha. ESTADO.FISICO.PRODUCCION NOMBRE..CIENTIFICO
## 1 1.00 FRUTO FRESCO BETA VULGARIS
## 2 18.00 FRUTO FRESCO BETA VULGARIS
## 3 17.33 FRUTO FRESCO BETA VULGARIS
## 4 16.00 FRUTO FRESCO BETA VULGARIS
## 5 10.00 FRUTO FRESCO BETA VULGARIS
## 6 6.00 FRUTO FRESCO BETA VULGARIS
## CICLO.DE.CULTIVO
## 1 TRANSITORIO
## 2 TRANSITORIO
## 3 TRANSITORIO
## 4 TRANSITORIO
## 5 TRANSITORIO
## 6 TRANSITORIO
Revisemos los nombres de los atributos de EVA:
names(EVA)
## [1] "CÓD...DEP."
## [2] "DEPARTAMENTO"
## [3] "CÓD..MUN."
## [4] "MUNICIPIO"
## [5] "GRUPO..DE.CULTIVO"
## [6] "SUBGRUPO..DE.CULTIVO"
## [7] "CULTIVO"
## [8] "DESAGREGACIÓN.REGIONAL.Y.O.SISTEMA.PRODUCTIVO"
## [9] "AÑO"
## [10] "PERIODO"
## [11] "Área.Sembrada..ha."
## [12] "Área.Cosechada..ha."
## [13] "Producción..t."
## [14] "Rendimiento..t.ha."
## [15] "ESTADO.FISICO.PRODUCCION"
## [16] "NOMBRE..CIENTIFICO"
## [17] "CICLO.DE.CULTIVO"
Asignemos nuevos nombres a nuestra tabla, los cuales nos permitan identificar con mayor facilidad información de interes
nombres <- c("cod_dpto","Dpto","cod_mun","mun", "grupo","subgrupo", "cultivo", "desag", "year", "periodo", "area_siembra", "area_cosecha", "produccion", "rendimiento", "estado", "nombre", "ciclo")
(names(EVA)=nombres)
## [1] "cod_dpto" "Dpto" "cod_mun" "mun" "grupo"
## [6] "subgrupo" "cultivo" "desag" "year" "periodo"
## [11] "area_siembra" "area_cosecha" "produccion" "rendimiento" "estado"
## [16] "nombre" "ciclo"
class(EVA)
## [1] "data.frame"
#EVA
Se filtra la informacion del EVA para nuestros departamentos de interes (Caldas, Quindio y Risaralda)
eje_cafetero = dplyr::filter(EVA, Dpto == "CALDAS" |
Dpto == "QUINDIO" |
Dpto == "RISARALDA")
#eje_cafetero
head(eje_cafetero)
## cod_dpto Dpto cod_mun mun grupo subgrupo cultivo desag
## 1 17 CALDAS 17541 PENSILVANIA HORTALIZAS ACELGA ACELGA ACELGA
## 2 17 CALDAS 17541 PENSILVANIA HORTALIZAS ACELGA ACELGA ACELGA
## 3 63 QUINDIO 63272 FILANDIA HORTALIZAS ACELGA ACELGA ACELGA
## 4 63 QUINDIO 63272 FILANDIA HORTALIZAS ACELGA ACELGA ACELGA
## 5 17 CALDAS 17495 NORCASIA FRUTALES AGUACATE AGUACATE AGUACATE
## 6 17 CALDAS 17616 RISARALDA FRUTALES AGUACATE AGUACATE AGUACATE
## year periodo area_siembra area_cosecha produccion rendimiento estado
## 1 2010 2010A 1 1 4 5.0 FRUTO FRESCO
## 2 2010 2010B 1 1 4 5.0 FRUTO FRESCO
## 3 2015 2015A 1 1 8 16.8 FRUTO FRESCO
## 4 2015 2015B 1 1 8 16.8 FRUTO FRESCO
## 5 2007 2007 249 229 1031 4.5 FRUTO FRESCO
## 6 2007 2007 150 28 336 12.0 FRUTO FRESCO
## nombre ciclo
## 1 BETA VULGARIS TRANSITORIO
## 2 BETA VULGARIS TRANSITORIO
## 3 BETA VULGARIS TRANSITORIO
## 4 BETA VULGARIS TRANSITORIO
## 5 PERSEA AMERICANA MILL. PERMANENTE
## 6 PERSEA AMERICANA MILL. PERMANENTE
tail(eje_cafetero)
## cod_dpto Dpto cod_mun mun grupo subgrupo cultivo
## 12060 17 CALDAS 17001 MANIZALES HORTALIZAS ZANAHORIA ZANAHORIA
## 12061 17 CALDAS 17442 MARMATO HORTALIZAS ZANAHORIA ZANAHORIA
## 12062 17 CALDAS 17442 MARMATO HORTALIZAS ZANAHORIA ZANAHORIA
## 12063 17 CALDAS 17001 MANIZALES HORTALIZAS ZANAHORIA ZANAHORIA
## 12064 17 CALDAS 17495 NORCASIA FRUTALES ZAPOTE ZAPOTE
## 12065 17 CALDAS 17495 NORCASIA FRUTALES ZAPOTE ZAPOTE
## desag year periodo area_siembra area_cosecha produccion rendimiento
## 12060 ZANAHORIA 2017 2017B 27 23 345 15.00
## 12061 ZANAHORIA 2017 2017B 1 1 3 3.00
## 12062 ZANAHORIA 2018 2018A 40 40 120 3.00
## 12063 ZANAHORIA 2018 2018A 31 31 468 15.09
## 12064 ZAPOTE 2008 2008 10 10 100 10.00
## 12065 ZAPOTE 2009 2009 5 5 50 10.00
## estado nombre ciclo
## 12060 HORTALIZA FRESCA UMBELLIFERAE TRANSITORIO
## 12061 HORTALIZA FRESCA UMBELLIFERAE TRANSITORIO
## 12062 HORTALIZA FRESCA UMBELLIFERAE TRANSITORIO
## 12063 HORTALIZA FRESCA UMBELLIFERAE TRANSITORIO
## 12064 FRUTO FRESCO POUTERIA SAPOTA PERMANENTE
## 12065 FRUTO FRESCO POUTERIA SAPOTA PERMANENTE
Hay columnas que no son relevantes. Las columnas importantes se guardaran en otro objeto
eje_cafetero.clean <- eje_cafetero %>% select(cod_mun, mun, cultivo)
head(eje_cafetero.clean)
## cod_mun mun cultivo
## 1 17541 PENSILVANIA ACELGA
## 2 17541 PENSILVANIA ACELGA
## 3 63272 FILANDIA ACELGA
## 4 63272 FILANDIA ACELGA
## 5 17495 NORCASIA AGUACATE
## 6 17616 RISARALDA AGUACATE
Se realiza el cambio de columnas que representan valores numericos, identificadas como datos de tipo caracter, a información numerica.
eje_cafetero %>% mutate(area_siembra = as.numeric(area_siembra),
area_cosecha = as.numeric(area_cosecha),
produccion = as.numeric(produccion),
rendimiento = as.numeric(rendimiento)) -> eje_cafetero
head(eje_cafetero)
## cod_dpto Dpto cod_mun mun grupo subgrupo cultivo desag
## 1 17 CALDAS 17541 PENSILVANIA HORTALIZAS ACELGA ACELGA ACELGA
## 2 17 CALDAS 17541 PENSILVANIA HORTALIZAS ACELGA ACELGA ACELGA
## 3 63 QUINDIO 63272 FILANDIA HORTALIZAS ACELGA ACELGA ACELGA
## 4 63 QUINDIO 63272 FILANDIA HORTALIZAS ACELGA ACELGA ACELGA
## 5 17 CALDAS 17495 NORCASIA FRUTALES AGUACATE AGUACATE AGUACATE
## 6 17 CALDAS 17616 RISARALDA FRUTALES AGUACATE AGUACATE AGUACATE
## year periodo area_siembra area_cosecha produccion rendimiento estado
## 1 2010 2010A 1 1 4 5.0 FRUTO FRESCO
## 2 2010 2010B 1 1 4 5.0 FRUTO FRESCO
## 3 2015 2015A 1 1 8 16.8 FRUTO FRESCO
## 4 2015 2015B 1 1 8 16.8 FRUTO FRESCO
## 5 2007 2007 249 229 1031 4.5 FRUTO FRESCO
## 6 2007 2007 150 28 336 12.0 FRUTO FRESCO
## nombre ciclo
## 1 BETA VULGARIS TRANSITORIO
## 2 BETA VULGARIS TRANSITORIO
## 3 BETA VULGARIS TRANSITORIO
## 4 BETA VULGARIS TRANSITORIO
## 5 PERSEA AMERICANA MILL. PERMANENTE
## 6 PERSEA AMERICANA MILL. PERMANENTE
En este apartado haremos uso del paradigma dividir-aplicar-combinar, el cual nos permite dividir los datos en grupo, realizar un analisis de cada uno de estos y finalmente combinar los resultados.
Diferentes funciones de la libreria dplyr como group_by() y summarize(), seran usadas en este proceso.
A continuación agruparemos por cultivos y encontraremos la produccion total de nuestros departamentos de interes: Caldas, Risaralda y Quindio.
eje_cafetero %>%
filter(produccion > 0) %>%
group_by(cultivo) %>%
summarize(producciontotal = sum(produccion)) %>%
arrange(desc(producciontotal))
## # A tibble: 108 × 2
## cultivo producciontotal
## <chr> <dbl>
## 1 PLATANO 8014101
## 2 CAÑA AZUCARERA 7083542
## 3 CITRICOS 1974713
## 4 CAFE 1755860
## 5 CAÑA PANELERA 988967
## 6 TOMATE 800912
## 7 AGUACATE 673654
## 8 PIÑA 521427
## 9 BANANO 502493
## 10 NARANJA 407696
## # … with 98 more rows
Ahora encontraremos los municipios con mayor produccion para cada cultivo
eje_cafetero %>%
group_by(cultivo, mun) %>%
summarize(prodmax = max(produccion, na.rm = TRUE)) %>%
slice(which.max(prodmax)) %>%
arrange(desc(prodmax))
## `summarise()` has grouped output by 'cultivo'. You can override using the
## `.groups` argument.
## # A tibble: 110 × 3
## # Groups: cultivo [110]
## cultivo mun prodmax
## <chr> <chr> <dbl>
## 1 CAÑA AZUCARERA VITERBO 337153
## 2 PLATANO MONTENEGRO 98479
## 3 CITRICOS MONTENEGRO 49410
## 4 PIÑA MONTENEGRO 29335
## 5 MAIZ FORRAJERO LA DORADA 27840
## 6 CAÑA PANELERA VITERBO 27147
## 7 AGUACATE PACORA 26460
## 8 CEBOLLA DE RAMA PEREIRA 26250
## 9 TOMATE CHINCHINA 24600
## 10 NARANJA LA TEBAIDA 23762
## # … with 100 more rows
En este paso encontraremos los municipios con mayor produccion para cada grupo de especies vegetales cultivables.
eje_cafetero %>%
group_by(grupo, mun) %>%
summarize(prodmax = max(produccion, na.rm = TRUE)) %>%
slice(which.max(prodmax)) %>%
arrange(desc(prodmax))
## `summarise()` has grouped output by 'grupo'. You can override using the
## `.groups` argument.
## # A tibble: 13 × 3
## # Groups: grupo [13]
## grupo mun prodmax
## <chr> <chr> <dbl>
## 1 OTROS PERMANENTES VITERBO 337153
## 2 TUBERCULOS Y PLATANOS MONTENEGRO 98479
## 3 FRUTALES MONTENEGRO 49410
## 4 CEREALES LA DORADA 27840
## 5 HORTALIZAS PEREIRA 26250
## 6 FLORES Y FOLLAJES PEREIRA 5901
## 7 LEGUMINOSAS ANSERMA 1826
## 8 PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES AGUADAS 1656
## 9 FORESTALES VICTORIA 1527
## 10 FIBRAS PUEBLO RICO 227
## 11 HONGOS PEREIRA 186
## 12 OTROS TRANSITORIOS FILADELFIA 112
## 13 OLEAGINOSAS MANZANARES 12
Ahora seleccionaremos un grupo de cultivos y exportaremos los datos para que puedan ser utilizados en un futuro
eje_cafetero %>%
group_by(grupo, cod_mun, mun) %>%
filter(grupo=='CEREALES') %>%
summarize(prodmax = max(produccion, na.rm = TRUE)) %>%
arrange(desc(prodmax)) -> cereales2020
## `summarise()` has grouped output by 'grupo', 'cod_mun'. You can override using
## the `.groups` argument.
head(cereales2020)
## # A tibble: 6 × 4
## # Groups: grupo, cod_mun [6]
## grupo cod_mun mun prodmax
## <chr> <int> <chr> <dbl>
## 1 CEREALES 17380 LA DORADA 27840
## 2 CEREALES 66001 PEREIRA 5000
## 3 CEREALES 17616 RISARALDA 3400
## 4 CEREALES 17042 ANSERMA 1778
## 5 CEREALES 63470 MONTENEGRO 1566
## 6 CEREALES 17174 CHINCHINA 1315
Ademas, seleccionaremos un segundo grupo de cultivos y exportaremos sus datos como se muestra a continuación.
Ahora se realizará un filtrado del grupo FRUTALES
eje_cafetero %>%
group_by(grupo, cod_mun, mun) %>%
filter(grupo=='FRUTALES') %>%
summarize(prodmax = max(produccion, na.rm = TRUE)) %>%
arrange(desc(prodmax)) -> frutales2020
## `summarise()` has grouped output by 'grupo', 'cod_mun'. You can override using
## the `.groups` argument.
head(frutales2020)
## # A tibble: 6 × 4
## # Groups: grupo, cod_mun [6]
## grupo cod_mun mun prodmax
## <chr> <int> <chr> <dbl>
## 1 FRUTALES 63470 MONTENEGRO 49410
## 2 FRUTALES 63401 LA TEBAIDA 29750
## 3 FRUTALES 17042 ANSERMA 29120
## 4 FRUTALES 17513 PACORA 26460
## 5 FRUTALES 66001 PEREIRA 24560
## 6 FRUTALES 63594 QUIMBAYA 20343
Guardar información seleccionada en un archivo
write.csv(cereales2020, "./eje_cereales.csv")
write.csv(frutales2020, "./eje_frutales.csv")
Este trabajo se realizó tomando como guía el cuaderno: Lizarazo, I. 2022, My first R Notebook: Select crops with largest production.
Cite este trabajo así: Cely, N., 2023, Lectura y tratamiento de las estadisticas agropecuarias de Caldas, Quindio y Risaralda. Disponible en https://rpubs.com/ncely/eje_cultivos
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=Spanish_Colombia.utf8 LC_CTYPE=Spanish_Colombia.utf8
## [3] LC_MONETARY=Spanish_Colombia.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Colombia.utf8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] dplyr_1.1.0
##
## loaded via a namespace (and not attached):
## [1] rstudioapi_0.14 knitr_1.39 magrittr_2.0.3 tidyselect_1.2.0
## [5] R6_2.5.1 rlang_1.1.0 fastmap_1.1.0 fansi_1.0.3
## [9] stringr_1.5.0 tools_4.2.2 xfun_0.31 utf8_1.2.2
## [13] cli_3.3.0 withr_2.5.0 jquerylib_0.1.4 htmltools_0.5.5
## [17] yaml_2.3.5 digest_0.6.29 tibble_3.1.8 lifecycle_1.0.3
## [21] sass_0.4.2 vctrs_0.5.2 glue_1.6.2 cachem_1.0.6
## [25] evaluate_0.15 rmarkdown_2.14 stringi_1.7.8 compiler_4.2.2
## [29] bslib_0.4.0 pillar_1.8.1 generics_0.1.3 jsonlite_1.8.4
## [33] pkgconfig_2.0.3