1. Introducción
2. Configuración
Se dio comienzo cargando las librerías ya instaladas necesarias para
el análisis: tidyverse, dplyr,
ggplot2 y readr.
library(tidyverse)
library(dplyr)
library(readr)
library(ggplot2)
3. Leer datos obtenidos de EVA
Una vez descargado el archivo de EVA, se verifica la dirección del
archivo:
list.files("D:/GB2/P3/Proyecto Qgis", pattern=c('csv'))
[1] "Base agrícola 2019 - 2023.csv"
[2] "Base Agricola Boyaca.csv"
A continuación se realiza la lectura del archivo Base
agrícola 2019 - 2023:
(eva = read_csv2("D:/GB2/P3/Proyecto Qgis/Base agrícola 2019 - 2023.csv", locale = locale(encoding = "Latin1"), col_names = TRUE,
show_col_types = FALSE))
ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
4. Eliminar columnas no deseadas
Se seleccionan los atributos necesarios parav limpiar la base de
datos:
eva %>% dplyr::select('CodigoDaneMunicipio':'EstadoFisicodelCultivo') -> eva.tmp
eva.tmp
Ser revisa que la selección de columnas se haya realizaso
correctamente. Luego, se renombran las columnas que contengan carácteres
con ruido:
eva.tmp %>% dplyr::rename('cod_Mun' = 'CodigoDaneMunicipio', 'Grupo' = 'GrupoCultivo',
'Sistema' = 'DesagregacionCultivo',
'Estado' = 'EstadoFisicodelCultivo') -> new_eva
5. Análisis de datos
La librería dplyr facilita la realización de dividir los datos en
grupos mediante la función group_by(). Una vez agrupados, se puede usar
summarize() para generar un resumen de una fila por grupo, aplicando
funciones de agregación o resumen.
5.1 Cultivos más importantes entre 2019 y 2023
PAi se desea saber la producción total por grupo de cultivos, se
escribe:
new_eva %>%
##filter(Produccion > 0) %>%
group_by(Grupo) %>%
summarize(total_produccion = sum(Produccion)) %>%
arrange(desc(total_produccion))
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:
PT %>%
filter(total_produccion > 1000000) -> main.groups
Para conocer la producción total de los mprincipales grupos de
cultivos:
(value = sum(main.groups$total_produccion))
[1] 17892768
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

5.2 Municipios líderes
Para conocer los municipios que lideraron la producción de cada
cultivo entre 2019 y 2023:
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.
Se filtra para saber cuáles son los municipios más importantes en el
ámbito agrícola:
leaders %>%
filter(total_prod > 50000) -> main.leaders
Se crea un diagrama de barras para los municipios más
importantes:
p<-ggplot(data=main.leaders, aes(x=Municipio, y=total_prod)) +
geom_bar(stat="identity")
p

5.3 Un cultivo importante entre 2019 y 2023
new_eva %>%
filter(Municipio=="Chitaraque" & Cultivo=="Café") %>%
group_by(Year, Cultivo) %>%
select(Municipio, Cultivo, Produccion, Year) -> chitaraque_cafe
Se crea un gráfico de la producción de café en Chitaraque para todo
el período de tiempo:
g <- ggplot(aes(x=Year, y=Produccion/1000), data = chitaraque_cafe) + geom_bar(stat='identity') + labs(y='Produccion de Café [Ton x 1000]')
g + ggtitle("Evolucion de la Produccion del Cultivo de Café en Chitaraque desde 2019 a 2023") + labs(caption= "Based on EVA data (EVA, 2023)")

7. Detalles del entorno computacional
sessionInfo()
R version 4.4.3 (2025-02-28 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
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
time zone: America/Bogota
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lubridate_1.9.4 forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4 purrr_1.0.4
[6] readr_2.1.5 tidyr_1.3.1 tibble_3.2.1 ggplot2_3.5.2 tidyverse_2.0.0
loaded via a namespace (and not attached):
[1] bit_4.6.0 jsonlite_2.0.0 gtable_0.3.6 crayon_1.5.3
[5] compiler_4.4.3 tidyselect_1.2.1 parallel_4.4.3 scales_1.3.0
[9] yaml_2.3.10 fastmap_1.2.0 R6_2.6.1 labeling_0.4.3
[13] generics_0.1.3 knitr_1.50 munsell_0.5.1 pillar_1.10.1
[17] tzdb_0.5.0 rlang_1.1.5 stringi_1.8.7 xfun_0.51
[21] bit64_4.6.0-1 timechange_0.3.0 cli_3.6.4 withr_3.0.2
[25] magrittr_2.0.3 digest_0.6.37 grid_4.4.3 vroom_1.6.5
[29] rstudioapi_0.17.1 hms_1.1.3 lifecycle_1.0.4 vctrs_0.6.5
[33] evaluate_1.0.3 glue_1.8.0 farver_2.1.2 colorspace_2.1-1
[37] rmarkdown_2.29 tools_4.4.3 pkgconfig_2.0.3 htmltools_0.5.8.1
LS0tDQp0aXRsZTogIlRlcmNlciBjdWFkZXJubyBkZSBSOiBEaW7DoW1pY2EgZGUgbGEgcHJvZHVjY2nDs24gZGUgY3VsdGl2b3MiDQphdXRob3I6ICJZYW5ldGggQWxleGFuZHJhIEFyZW5hcyBHYXJyaWRvIg0KZGF0ZTogDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KIyAxLiBJbnRyb2R1Y2Npw7NuDQojIyMjIEVuIGVzdGUgY3VhZGVybm8gc2UgcHJlc2VudGFuIGxvcyByZXN1bHRhZG9zIGRlIGxhIG9idGVuY2nDs24gZGUgZXN0YWTDrXN0aWNhcyBwbHVyaWFudWFsZXMgZGUgdW4gZ3J1cG8gZGUgY3VsdGl2b3MgZGVsIGRlcGFydGFtZW50byBkZSBCb3lhY8OhLiBMb3MgZGF0b3MgZnVlcm9uIGV4dHJhw61kb3MgZGUgbGFzIEV2YWx1YWNpb25lcyBBZ3JvcGVjdWFyaWFzIE11bmljaXBhbGVzIChFVkEpLCB1bmEgYmFzZSBkZSBpbmZvcm1hY2nDs24gYWdyw61jb2xhIHF1ZSBhYmFyY2EgZWwgcGVyw61vZG8gMjAxOS0yMDIzIHkgcXVlIGVzIHByb3BvcmNpb25hZGEgcG9yIGVsIE1pbmlzdGVyaW8gZGUgQWdyaWN1bHR1cmEgeSBEZXNhcnJvbGxvIFJ1cmFsLiBBIHBhcnRpciBkZSBlc3RhIGZ1ZW50ZSwgc2UgbGxldsOzIGEgY2FibyBlbCBwcm9jZXNhbWllbnRvIHkgYW7DoWxpc2lzIGRlIGxhIGluZm9ybWFjacOzbiBjb24gZWwgZmluIGRlIGdlbmVyYXIgbG9zIHJlc3VsdGFkb3MgcXVlIHNlIG11ZXN0cmFuIGEgY29udGludWFjacOzbi4NCg0KIyAyLiBDb25maWd1cmFjacOzbg0KIyMjIyBTZSBkaW8gY29taWVuem8gY2FyZ2FuZG8gbGFzIGxpYnJlcsOtYXMgeWEgaW5zdGFsYWRhcyBuZWNlc2FyaWFzIHBhcmEgZWwgYW7DoWxpc2lzOiAgKip0aWR5dmVyc2UqKiwgKipkcGx5cioqLCAqKmdncGxvdDIqKiB5ICoqcmVhZHIqKi4NCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYGBgDQoNCiMgMy4gTGVlciBkYXRvcyBvYnRlbmlkb3MgZGUgRVZBDQojIyMjIFVuYSB2ZXogZGVzY2FyZ2FkbyBlbCBhcmNoaXZvIGRlIEVWQSwgc2UgdmVyaWZpY2EgbGEgZGlyZWNjacOzbiBkZWwgYXJjaGl2bzoNCmBgYHtyfQ0KbGlzdC5maWxlcygiRDovR0IyL1AzL1Byb3llY3RvIFFnaXMiLCBwYXR0ZXJuPWMoJ2NzdicpKQ0KYGBgDQojIyMjIEEgY29udGludWFjacOzbiBzZSByZWFsaXphIGxhIGxlY3R1cmEgZGVsIGFyY2hpdm8gKipCYXNlIGFncsOtY29sYSAyMDE5IC0gMjAyMyoqOg0KYGBge3J9DQooZXZhID0gcmVhZF9jc3YyKCJEOi9HQjIvUDMvUHJveWVjdG8gUWdpcy9CYXNlIGFncmnMgWNvbGEgMjAxOSAtIDIwMjMuY3N2IiwgbG9jYWxlID0gbG9jYWxlKGVuY29kaW5nID0gIkxhdGluMSIpLCBjb2xfbmFtZXMgPSBUUlVFLA0KICAgICAgICAgICAgICAgIHNob3dfY29sX3R5cGVzID0gRkFMU0UpKQ0KYGBgDQojIyMjIFNlIHJldmlzYSBsYSBpbmZvcm1hY2nDs24gZGUgbGEgdGFibGEgcGFyYSBjb25maXJtYXIgcXVlIGNvbnRlbmdhIGxhcyBlc3RhZMOtc3RpY2FzIGFncsOtY29sYXMgZGUgbG9zIGHDsW9zIHJlcXVlcmlkb3MuIEFob3JhIHNlIGF2ZXJpZ3VhIHNpIGVsIHNvZnR3YXJlIHJlY29ub2NlIGxvcyBub21icmVzIGRlIGxhIHRhYmxhOg0KDQpgYGB7cn0NCm5hbWVzKGV2YSkNCmBgYA0KIyA0LiBFbGltaW5hciBjb2x1bW5hcyBubyBkZXNlYWRhcw0KIyMjIyBTZSBzZWxlY2Npb25hbiBsb3MgYXRyaWJ1dG9zIG5lY2VzYXJpb3MgcGFyYXYgbGltcGlhciBsYSBiYXNlIGRlIGRhdG9zOg0KDQpgYGB7cn0NCmV2YSAlPiUgZHBseXI6OnNlbGVjdCgnQ29kaWdvRGFuZU11bmljaXBpbyc6J0VzdGFkb0Zpc2ljb2RlbEN1bHRpdm8nKSAtPiBldmEudG1wDQpgYGANCg0KYGBge3J9DQpldmEudG1wDQpgYGANCiMjIyMgU2VyIHJldmlzYSBxdWUgbGEgc2VsZWNjacOzbiBkZSBjb2x1bW5hcyBzZSBoYXlhIHJlYWxpemFzbyBjb3JyZWN0YW1lbnRlLiBMdWVnbywgc2UgcmVub21icmFuIGxhcyBjb2x1bW5hcyBxdWUgY29udGVuZ2FuIGNhcsOhY3RlcmVzIGNvbiBydWlkbzoNCg0KYGBge3J9DQpldmEudG1wICU+JSAgZHBseXI6OnJlbmFtZSgnY29kX011bicgPSAnQ29kaWdvRGFuZU11bmljaXBpbycsICdHcnVwbycgPSAnR3J1cG9DdWx0aXZvJywgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAnU2lzdGVtYScgPSAnRGVzYWdyZWdhY2lvbkN1bHRpdm8nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICdFc3RhZG8nID0gJ0VzdGFkb0Zpc2ljb2RlbEN1bHRpdm8nKSAtPiBuZXdfZXZhDQpgYGANCg0KIyMjIyBTZSByZXZpc2E6DQoNCmBgYHtyfQ0KbmV3X2V2YQ0KYGBgDQojIDUuIEFuw6FsaXNpcyBkZSBkYXRvcw0KIyMjIyBMYSBsaWJyZXLDrWEgZHBseXIgZmFjaWxpdGEgbGEgcmVhbGl6YWNpw7NuIGRlIGRpdmlkaXIgbG9zIGRhdG9zIGVuIGdydXBvcyBtZWRpYW50ZSBsYSBmdW5jacOzbiBncm91cF9ieSgpLiBVbmEgdmV6IGFncnVwYWRvcywgc2UgcHVlZGUgdXNhciBzdW1tYXJpemUoKSBwYXJhIGdlbmVyYXIgdW4gcmVzdW1lbiBkZSB1bmEgZmlsYSBwb3IgZ3J1cG8sIGFwbGljYW5kbyBmdW5jaW9uZXMgZGUgYWdyZWdhY2nDs24gbyByZXN1bWVuLg0KDQojIyMgNS4xIEN1bHRpdm9zIG3DoXMgaW1wb3J0YW50ZXMgZW50cmUgMjAxOSB5IDIwMjMNCiMjIyMgUEFpIHNlIGRlc2VhIHNhYmVyIGxhIHByb2R1Y2Npw7NuIHRvdGFsIHBvciBncnVwbyBkZSBjdWx0aXZvcywgc2UgZXNjcmliZToNCg0KYGBge3J9DQpuZXdfZXZhICU+JQ0KICAjI2ZpbHRlcihQcm9kdWNjaW9uID4gMCkgJT4lDQogIGdyb3VwX2J5KEdydXBvKSAlPiUNCiAgc3VtbWFyaXplKHRvdGFsX3Byb2R1Y2Npb24gPSBzdW0oUHJvZHVjY2lvbikpICU+JSANCiAgYXJyYW5nZShkZXNjKHRvdGFsX3Byb2R1Y2Npb24pKSANCmBgYA0KIyMjIyBQYXJhIGd1YXJkYXIgbGEgcHJvZHVjY2nDs24gdG90YWwgZW4gdW4gb2JqZXRvOiANCg0KYGBge3J9DQpuZXdfZXZhICU+JQ0KICBncm91cF9ieShHcnVwbykgJT4lDQogIHN1bW1hcml6ZSh0b3RhbF9wcm9kdWNjaW9uID0gc3VtKFByb2R1Y2Npb24pKSAtPiBQVCANCmBgYA0KDQojIyMjIFBhcmEgZmlsdHJhciBsb3MgY3VsdGl2b3MgbcOhcyBpbXBvcnRhbnRlczoNCg0KYGBge3J9DQpQVCAlPiUgDQogIGZpbHRlcih0b3RhbF9wcm9kdWNjaW9uID4gMTAwMDAwMCkgLT4gbWFpbi5ncm91cHMNCmBgYA0KDQojIyMjIFBhcmEgY29ub2NlciBsYSBwcm9kdWNjacOzbiB0b3RhbCBkZSBsb3MgbXByaW5jaXBhbGVzIGdydXBvcyBkZSBjdWx0aXZvczoNCg0KYGBge3J9DQoodmFsdWUgPSBzdW0obWFpbi5ncm91cHMkdG90YWxfcHJvZHVjY2lvbikpDQpgYGANCiMjIyMgUGFyYSBhZ3JlZ2FyIHVuIG51ZXZvIGF0cmlidXRvIGNvbiBwb3JjZW50YWplIGRlIGxhIHByb2R1Y2Npw7NuIHRvdGFsOg0KDQpgYGB7cn0NCm1haW4uZ3JvdXBzJHBlcmNlbnQgPSBtYWluLmdyb3VwcyR0b3RhbF9wcm9kdWNjaW9uL3ZhbHVlDQpgYGANCg0KIyMjIyBQYXJhIGNyZWFyIHVuIGdyw6FmaWNvIGNpcmN1bGFyIGRlIGxhIHByb2R1Y2Npw7NuIHRvdGFsIGRlIG1haW4uZ3JvdXBzOg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCiMgQmFycGxvdA0KYnA8LSBnZ3Bsb3QobWFpbi5ncm91cHMsIGFlcyh4PSIiLCB5PXBlcmNlbnQsIGZpbGw9R3J1cG8pKSsNCmdlb21fYmFyKHdpZHRoID0gMSwgc3RhdCA9ICJpZGVudGl0eSIpDQojIFBpZWNoYXJ0DQpwaWUgPC0gYnAgKyBjb29yZF9wb2xhcigieSIsIHN0YXJ0PTApDQpwaWUNCmBgYA0KIyMjIDUuMiBNdW5pY2lwaW9zIGzDrWRlcmVzDQojIyMjIFBhcmEgY29ub2NlciBsb3MgbXVuaWNpcGlvcyBxdWUgbGlkZXJhcm9uIGxhIHByb2R1Y2Npw7NuIGRlIGNhZGEgY3VsdGl2byBlbnRyZSAyMDE5IHkgMjAyMzoNCg0KYGBge3J9DQpuZXdfZXZhICU+JQ0KICBncm91cF9ieShHcnVwbywgTXVuaWNpcGlvKSAlPiUNCiAgc3VtbWFyaXplKHRvdGFsX3Byb2QgPSBzdW0oUHJvZHVjY2lvbiwgbmEucm0gPSBUUlVFKSkgJT4lDQogIHNsaWNlKHdoaWNoLm1heCh0b3RhbF9wcm9kKSkgICU+JQ0KICBhcnJhbmdlKGRlc2ModG90YWxfcHJvZCkpDQpgYGANCiMjIyMgU2UgZ3VhcmRhIGxhIGluZm9ybWFjacOzbjoNCg0KYGBge3J9DQpuZXdfZXZhICU+JQ0KICBncm91cF9ieShHcnVwbywgTXVuaWNpcGlvKSAlPiUNCiAgc3VtbWFyaXplKHRvdGFsX3Byb2QgPSBzdW0oUHJvZHVjY2lvbiwgbmEucm0gPSBUUlVFKSkgJT4lDQogIHNsaWNlKHdoaWNoLm1heCh0b3RhbF9wcm9kKSkgIC0+IGxlYWRlcnMNCmBgYA0KYGBge3J9DQpsZWFkZXJzDQpgYGANCiMjIyMgU2UgZmlsdHJhIHBhcmEgc2FiZXIgY3XDoWxlcyBzb24gbG9zIG11bmljaXBpb3MgbcOhcyBpbXBvcnRhbnRlcyBlbiBlbCDDoW1iaXRvIGFncsOtY29sYToNCg0KYGBge3J9DQpsZWFkZXJzICU+JSANCiAgZmlsdGVyKHRvdGFsX3Byb2QgPiA1MDAwMCkgLT4gbWFpbi5sZWFkZXJzDQpgYGANCg0KIyMjIyBTZSBjcmVhIHVuIGRpYWdyYW1hIGRlIGJhcnJhcyBwYXJhIGxvcyBtdW5pY2lwaW9zIG3DoXMgaW1wb3J0YW50ZXM6DQoNCmBgYHtyfQ0KcDwtZ2dwbG90KGRhdGE9bWFpbi5sZWFkZXJzLCBhZXMoeD1NdW5pY2lwaW8sIHk9dG90YWxfcHJvZCkpICsNCiAgZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiKQ0KcA0KDQpgYGANCiMjIyA1LjMgVW4gY3VsdGl2byBpbXBvcnRhbnRlIGVudHJlIDIwMTkgeSAyMDIzDQoNCmBgYHtyfQ0KbmV3X2V2YSAlPiUgDQogIGZpbHRlcihNdW5pY2lwaW89PSJDaGl0YXJhcXVlIiAmIEN1bHRpdm89PSJDYWbDqSIpICU+JSANCiAgZ3JvdXBfYnkoWWVhciwgQ3VsdGl2bykgJT4lDQogIHNlbGVjdChNdW5pY2lwaW8sIEN1bHRpdm8sIFByb2R1Y2Npb24sIFllYXIpIC0+ICBjaGl0YXJhcXVlX2NhZmUNCmBgYA0KDQojIyMjIFNlIHJldmlzYSBsYSBpbmZvcm1hY2nDs246DQoNCmBgYHtyfQ0KY2hpdGFyYXF1ZV9jYWZlDQpgYGANCiMjIyMgU2UgY3JlYSB1biBncsOhZmljbyBkZSBsYSBwcm9kdWNjacOzbiBkZSBjYWbDqSBlbiBDaGl0YXJhcXVlIHBhcmEgdG9kbyBlbCBwZXLDrW9kbyBkZSB0aWVtcG86DQoNCmBgYHtyfQ0KZyA8LSBnZ3Bsb3QoYWVzKHg9WWVhciwgeT1Qcm9kdWNjaW9uLzEwMDApLCBkYXRhID0gY2hpdGFyYXF1ZV9jYWZlKSArIGdlb21fYmFyKHN0YXQ9J2lkZW50aXR5JykgKyBsYWJzKHk9J1Byb2R1Y2Npb24gZGUgQ2Fmw6kgW1RvbiB4IDEwMDBdJykNCmBgYA0KDQpgYGB7cn0NCmcgKyBnZ3RpdGxlKCJFdm9sdWNpb24gZGUgbGEgUHJvZHVjY2lvbiBkZWwgQ3VsdGl2byBkZSBDYWbDqSBlbiBDaGl0YXJhcXVlIGRlc2RlIDIwMTkgYSAyMDIzIikgKyBsYWJzKGNhcHRpb249ICJCYXNlZCBvbiBFVkEgZGF0YSAoRVZBLCAyMDIzKSIpDQpgYGANCiMgNi4gQmlibGlvZ3JhcGh5DQojIyMjIExpemFyYXpvLCBJLiwgMjAyMi4gVW5kZXJzdGFuZGluZyBkeW5hbWljIHByb2R1Y3Rpdml0eSBvZiBjcm9wcy4gQXZhaWxhYmxlIGF0IGh0dHBzOi8vcnB1YnMuY29tL2lhbHMydW4vcHJvZHVjdGlvbl9keW5fdjEuDQoNCiMgNy4gRGV0YWxsZXMgZGVsIGVudG9ybm8gY29tcHV0YWNpb25hbA0KDQpgYGB7cn0NCnNlc3Npb25JbmZvKCkNCmBgYA0KDQo=