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.
Primero, cargamos las librerías necesarias y los datos:
library(dplyr)
library(readr)
library(ggplot2)
library(stringr)
library(tidyverse)
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)
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"
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
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))
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
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
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")
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
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
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)")
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.