#1. Introducción Este es el tercer cuaderno de R Markdown del curso Geomática Básica 2022. Ilustra cómo obtener estadísticas plurianuales para un grupo de cultivos en cualquier departamento. Utilizaremos como fuente principal de datos las Evaluaciones Agropecuarias Municipales (EVA), un conjunto de datos agrícolas del período 2007-2018 proporcionado por el Ministerio de Agricultura y Desarrollo Rural.

#2. Configuración En este paso, instalaremos y cargaremos las bibliotecas R necesarias.

#run the following lines from the command line:
#install.packages('dplyr')
#install.packages('readxl')
#install.packages('sf)
library(tidyverse)
library(dplyr)
library(readr)
library(ggplot2)

#3. Descargue el conjunto de datos de EVA plurianual de su departamento. Visite https://www.datos.gov.co/Agricultura-y-Desarrollo-Rural/Evaluaciones-Agropecuarias-Municipales-EVA/2pnw-mmge/data para encontrar el conjunto de datos.

En el sitio web vinculado (p. ej., datos.gov.co), visualice los datos y aplique un filtro para obtener solo los correspondientes a su departamento. Luego, exporte los datos en formato csv.

Ahora, vaya al directorio de descargas para encontrar el archivo Evaluaciones_Agropecuarias_Municipales_EVA.csv. Muévalo a su directorio de trabajo.

#3. Read the EVA dataset

list.files("C:/User/menju/OneDrive/Documentos/GB2/Rstudio3")
## character(0)

Ahora, procedamos a leer el conjunto de datos EVA 2007-2018:

(eva = read_csv("C:/Users/menju/OneDrive/Documentos/GB2/Rstudio3/Evaluaciones_Agropecuarias_Municipales_EVA_20250610.csv", col_names = TRUE,
                show_col_types = FALSE))

Revise la tabla y confirme que contiene estadísticas agrícolas de diferentes años. ¿Podría indicar el período de tiempo de estos datos?

Es muy importante saber qué nombres ve el software. Pueden ser diferentes a los que vemos nosotros. Averigüémoslo:

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"

#4. Limpiar el conjunto de datos EVA Seleccionemos algunos atributos para limpiar el objeto EVA:

# check the objet output in the last chunk and
# change attribute names according to your own data
eva %>% dplyr::select('CÓD. MUN.':'ESTADO FISICO PRODUCCION') -> eva.tmp
eva.tmp

Revise el resultado y verifique que solo se seleccionaron las columnas relevantes.

Ahora, cambie los nombres de las columnas que contengan caracteres vacíos o con ruido:

# make sure to use the column names that are in your eva.tmp object
eva.tmp %>%  dplyr::rename('Cod_Mun' = 'CÓD. MUN.', 
                         'Grupo' = 'GRUPO \nDE CULTIVO',
                         'Subgrupo' = 'SUBGRUPO \nDE CULTIVO', 
                         'Year' = 'AÑO',
                         'AreaSembrada' = 'Área Sembrada\n(ha)',
                         'AreaCosechada' = 'Área Sembrada\n(ha)',
                         'Produccion' = 'Producción\n(t)',                                                                 'Rendimiento' =  'Rendimiento\n(t/ha)',   
                         'Sistema' = 'DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO',
                         'Estado' = 'ESTADO FISICO PRODUCCION') -> new_eva

Comprobemos el resultado:

new_eva

Revise la tabla anterior y verifique que los atributos cuantitativos se almacenen como tipos de datos numéricos (no como tipos de datos de cadena).

#5. Análisis de datos Muchas tareas de análisis de datos pueden abordarse mediante el paradigma dividir-aplicar-combinar: dividir los datos en grupos, aplicar un análisis a cada grupo y, a continuación, combinar los resultados.

La biblioteca dplyr facilita enormemente este proceso mediante la función group_by(), que divide los datos en grupos. Cuando los datos se agrupan de esta manera, se puede usar summary() para comprimir cada grupo en un resumen de una sola fila. summary() lo consigue aplicando una función de agregación o resumen a cada grupo.

#5.1 Cultivos más importantes entre 2007 y 2018 Por ejemplo, si queremos conocer la producción total por grupo de cultivos, escribimos:

new_eva %>%
  ##filter(Produccion > 0) %>%
  group_by(Grupo) %>%
  summarize(total_produccion = sum(Produccion)) %>% 
  arrange(desc(total_produccion)) 

Tenga en cuenta que la producción total contiene la suma de la producción de cada grupo de cultivos entre 2007 y 2018. En Santander, los dos cultivos con mayor producción fueron “Frutales” y “Tubérculos y Plátanos”.

Para guardar la producción total en un objeto:

new_eva %>%
  group_by(Grupo) %>%
  summarize(total_produccion = sum(Produccion)) -> PT 

Para filtrar los cultivos más importantes:Para filtrar los cultivos más importantes:

PT %>% 
  filter(total_produccion > 1000000) -> main.groups

Para conocer la producción total de los principales grupos de cultivos:

(value = sum(main.groups$total_produccion))
## [1] 18856556

Para agregar un nuevo atributo con porcentaje de la producción total:

main.groups$percent = main.groups$total_produccion/value

Para crear un gráfico circular de la producción total de main.groups:

library(ggplot2)
# Barplot
bp<- ggplot(main.groups, aes(x="", y=percent, fill=Grupo))+
geom_bar(width = 1, stat = "identity")
# Piechart
pie <- bp + coord_polar("y", start=0)
pie

Producción de cada grupo de cultivos:

Para conocer los municipios que lideraron la producción de cada cultivo entre 2007 y 2018:

new_eva %>%
  group_by(Grupo, MUNICIPIO) %>%
  summarize(total_prod = sum(Produccion, na.rm = TRUE)) %>%
  slice(which.max(total_prod))  %>%
  arrange(desc(total_prod))
## `summarise()` has grouped output by 'Grupo'. You can override using the
## `.groups` argument.

Para guardar el objeto:

new_eva %>%
  group_by(Grupo, MUNICIPIO) %>%
  summarize(total_prod = sum(Produccion, na.rm = TRUE)) %>%
  slice(which.max(total_prod))  -> leaders
## `summarise()` has grouped output by 'Grupo'. You can override using the
## `.groups` argument.
leaders

Para filtrar los municipios más importantes desde el punto de vista agrícola:

leaders %>% 
  filter(total_prod > 50000) -> main.leaders

Grafiquemos los líderes filtrados:

# Basic barplot
p<-ggplot(data=main.leaders, aes(x=MUNICIPIO, y=total_prod)) +
  geom_bar(stat="identity")
p

#5.3 Dinámica de un cultivo importante entre 2007 y 2018

new_eva %>% 
  filter(MUNICIPIO=="ESPINAL" & Grupo=="CEREALES") %>% 
  group_by(Year, Grupo) %>%
  select(MUNICIPIO, Grupo, Produccion, Year) ->  ESPINAL_CEREALES

Comprobemos el resultado:

ESPINAL_CEREALES

Hagamos un gráfico rápido de la producción de piña en Lebrija para todo el período de tiempo cubierto por el conjunto de datos EVA:

g <- ggplot(aes(x=Year, y=Produccion/1000), data = ESPINAL_CEREALES) + geom_bar(stat='identity') + labs(y='Produccion Cereales [Ton x 1000]')

Añade un título y visualiza:

g + ggtitle("Evolution of Cereals Crop Production in Espinal from 2007 to 2018") + labs(caption= "Based on EVA data (Minagricultura, 2020)")

  1. Análisis y gráficos adicionales He ilustrado algunos ejemplos de análisis. Se podrían analizar otras variables además de la producción (p. ej., rendimiento, área cosechada, áreas sembradas).

Hay más ejemplos de análisis disponibles en este cuaderno.(VER LINK)