Introducción

En este R Markdown vamos a ver como tomar y procesar una tabla de datos proporcionada por la UPRA (Unidad de Planeación Agropecuaria) perteneciente al Ministerio de Agricultura y Desarrollo Rural de Colombia. El documento que nos compete para realizar este análisis es el EVA 2023 https://upra.gov.co/es-co/Paginas/eva_2023.aspx que enfocaremos a nuestro departamento de interés, que en nuestro caso es el departamento de Huila, el resultado de esta evaluación agropecuario nos brindara datos relevante respecto la producción agrícola del Huila y sus cultivos de mayor interés en el departamento.

Este documento contiene un análisis de los datos de producción agrícola del archivo Eva_Huila_2019_2023.csv. Se realizaremos diversas transformaciones y visualizaciones para entender mejor las tendencias de producción por especie, municipio, y otros tipos de datos.

Cargar Librerías y Datos

Primero, cargamos las librerías necesarias y los datos:

library(dplyr)
library(readr)
library(ggplot2)
library(stringr)
library(tidyverse)

Visualizar los datos

Eva_Huila_2019_2023 <- read_csv("Eva_Huila_2019_2023.csv")
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
Eva_Huila_2019_2023 <- read_delim("Eva_Huila_2019_2023.csv", delim = ";", col_names = TRUE)
head(Eva_Huila_2019_2023)

Selección y Renombrado de Columnas

Seleccionamos algunas columnas relevantes y renombramos las variables para mayor claridad.

Eva_Huila_2019_2023 %>% 
  dplyr::select('codigoMunicipio':'EstadoFisicoProduccio') -> eva.tmp
colnames(eva.tmp)
##  [1] "codigoMunicipio"       "municipio"             "especie"              
##  [4] "nombre_tipo_ciclo"     "grupo_especie"         "subGrupo_Especie"     
##  [7] "anho"                  "Periodo"               "AreaSembrada"         
## [10] "AreaCosechada"         "produccio"             "rendimiento"          
## [13] "cod_cultiv"            "nombre_cientifico"     "EstadoFisicoProduccio"

Renombrar las columnas

eva.tmp %>%
  dplyr::rename('Cod_Mun' = 'codigoMunicipio', 
                'Municipio' = 'municipio',
                'Grupo' = 'grupo_especie',
                'Subgrupo' = 'subGrupo_Especie',
                'Especie' = 'especie',
                'Tipo_Ciclo' = 'nombre_tipo_ciclo',
                'Año' = 'anho',
                'Rendimiento' = 'rendimiento',
                'Area_Sembrada' = 'AreaSembrada',
                'Area_Cosechada' = 'AreaCosechada',
                'Producción' = 'produccio',
                'Estado' = 'EstadoFisicoProduccio') -> new_eva
  new_eva

Agrupar y Resumir los Datos por Grupo

A continuación, agrupamos los datos por “Grupo” y calculamos la producción total para cada grupo.

new_eva %>%
  group_by(Grupo) %>%
  summarize(total_produccion = sum(Producción)) %>%
  arrange(desc(total_produccion))

Filtrar los Grupos con Producción Significativa

Filtramos los grupos con una producción total mayor a 100,000.

new_eva %>%
  group_by(Grupo) %>%
  summarize(total_produccion = sum(Producción)) -> PT
PT %>% 
  filter(total_produccion > 100000) -> main.groups
main.groups

Calcular el porcentaje de producción

value = sum(main.groups$total_produccion)
main.groups$percent = main.groups$total_produccion / value
new_eva %>%
  group_by(Grupo) %>%
  summarize(total_produccion = sum(Producción)) -> PT

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

main.groups
(value = sum(main.groups$total_produccion))
## [1] 9629823
main.groups$percent = main.groups$total_produccion/value

Limpieza de Caracteres Especiales

Realizamos algunas transformaciones para limpiar caracteres especiales en la columna “Grupo”, Para esto verificamos primeramente que todos los datos estén bajo el mismo formato de código y aquellos que no los páramos al formato, después de esto reemplazamos aquellos que nos generen problemas.

main.groups$Grupo <- iconv(main.groups$Grupo, from = "latin1", to = "UTF-8")
Sys.setlocale("LC_ALL", "es_ES.UTF-8")
## [1] "LC_COLLATE=es_ES.UTF-8;LC_CTYPE=es_ES.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8"
# Reemplazar caracteres especiales
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "á", "a")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "é", "e")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "í", "i")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "ó", "o")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "ú", "u")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "ñ", "n")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "Ra\xedces", "Raíces")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "tub\xe9rculos", "tubérculos")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "Ra�ces y tub�rculos", "Raíces y Tubérculos")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "San Agust�n", "San Agustin")
main.groups$Grupo <- str_replace_all(main.groups$Grupo, "Timan�", "Timana")

Visualización: Gráfico Circular de Producción por Grupo

Generamos un gráfico circular para visualizar la distribución de la producción por grupo.

library(ggplot2)

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

La grafica nos muestra claramente que mas de la mitad de la producción agricola del departamento del Huila pertenece a cultivos tropicales tradicionales

Identificar el Municipio con Mayor Producción por Grupo

Buscamos el municipio con mayor producción por cada grupo.

new_eva %>%
  group_by(Grupo, Municipio) %>%
  summarize(total_prod = sum(Producción, 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.
new_eva %>%
  group_by(Grupo, Municipio) %>%
  summarize(total_prod = sum(Producción, na.rm = TRUE), .groups = "drop") %>%
  slice(which.max(total_prod)) -> leaders
leaders
leaders %>% 
  filter(total_prod > 500) -> main.leaders

# Gráfico de barras para los municipios con mayor producción
p <- ggplot(data = main.leaders, aes(x = Municipio, y = total_prod)) +
  geom_bar(stat = "identity")
p

Análisis Específico para el Municipio de Isnos

Examinamos los datos de producción de arroz en el municipio de Campoalegre desde 2019 hasta 2023.

Producción de Café en Isnos

# Para el café, tenemos que está mal escrito como "Caf\xe9"
new_eva %>% 
  filter(Municipio == "Isnos" & Especie == "Caf\xe9") %>%
  group_by(Año, Especie) %>%
  select(Municipio, Especie, Producción, Año) -> Isnos_Cafe

g <- ggplot(aes(x = Año, y = Producción / 1000), data = Isnos_Cafe) + 
  geom_bar(stat = 'identity') + 
  labs(y = 'Producción Café [Ton x 1000]')

g + ggtitle("Evolución de la Producción de Café en Isnos de 2019 a 2023") + 
  labs(caption = "Basado en datos EVA (Minagricultura, 2023)")

Área Sembrada de Café en Isnos

new_eva %>% 
  filter(Municipio == "Isnos" & Especie == "Caf\xe9") %>%
  group_by(Año, Especie) %>%
  select(Municipio, Especie, Area_Sembrada, Año) -> Isnos_Cafe

g <- ggplot(aes(x = Año, y = Area_Sembrada / 1000), data = Isnos_Cafe) + 
  geom_bar(stat = 'identity') + 
  labs(y = 'Área Sembrada Café [Ha]')

g + ggtitle("Evolución del Área de Siembra de Café en Isnos de 2019 a 2023") + 
  labs(caption = "Basado en datos EVA (Minagricultura, 2023)")

Área Cosechada de Café en Isnos

new_eva %>% 
  filter(Municipio == "Isnos" & Especie == "Caf\xe9") %>%
  group_by(Año, Especie) %>%
  select(Municipio, Especie, Area_Cosechada, Año) -> Isnos_Cafe
g <- ggplot(aes(x = Año, y = Area_Cosechada / 1000), data = Isnos_Cafe) + 
  geom_bar(stat = 'identity') + 
  labs(y = 'Área Cosechada Café [Ha]')

g + ggtitle("Evolución del Área de Cosechada de Café en Isnos de 2019 a 2023") + 
  labs(caption = "Basado en datos EVA (Minagricultura, 2023)")

Rendimiento de Café en Isnos

new_eva %>% 
  filter(Municipio == "Isnos" & Especie == "Caf\xe9") %>%
  group_by(Año, Especie) %>%
  select(Municipio, Especie, Rendimiento, Año) -> Isnos_Cafe

g <- ggplot(aes(x = Año, y = Rendimiento), data = Isnos_Cafe) + 
  geom_bar(stat = 'identity') + 
  labs(y = 'Rendimiento Café [Ton/Ha]')

g + ggtitle("Evolución del Rendimiento de Café en Isnos de 2019 a 2023") + 
  labs(caption = "Basado en datos EVA (Minagricultura, 2023)")

Conclusión

El análisis ha proporcionado una visión más clara sobre los patrones de producción agrícola en la región de Huila, destacando los grupos y municipios con mayor producción, y haciendo un seguimiento de la evolución de la producción de Café en Isnos.

Este tipo de análisis es útil para la toma de decisiones en el sector agrícola y para la planificación futura de cultivos.