El objetivo de este cuaderno es dar a conocer los datos de las estadísticas municipales agropecuarias en el departamento de Tolima, dando a conocer información sobre productos agrícolas que conforman la economía del departamento.
La exploración de estadísticas no espaciales es esencial para comprender lo que está sucediendo en los territorios. Varias librerías R, en particular dplyr y tidyverse, son muy útiles para explorar y resumir estadísticas.
Por otro lado, las operaciones geoespaciales pueden mejorar nuestra comprensión de varios problemas que afectan a las regiones geográficas. Por ejemplo, desea averiguar cuál es la ubicación de aquellos municipios cuyos rendimientos de cosecha son sobresalientes (o, alternativamente, más bajos que el promedio). Para realizar dicha exploración, necesitamos unir datos no espaciales con datos espaciales. Además, también podríamos explorar uniones espaciales. Estas operaciones se basan en la intersección entre dos objetos espaciales, a menudo puntos y los polígonos.
Comencemos por eliminar el contenido de la memoria:
rm(list=ls())
Ahora, instalemos las librerías que necesitamos (en el siguiente fragmento, cualquier paquete se instala solo si no se ha instalado previamente.):
list.of.packages <- c("here", "tidyverse", "rgeos", "maptools", "raster", "sf", "viridis", "rnaturalearth", "GSODR", "ggrepel", "cowplot")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
Ahora vamos a cargar las librerias que acabamos de instalar:
library(here)
## here() starts at C:/Users/Pablo/Downloads
library(tidyverse)
## -- Attaching packages ----------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0 v purrr 0.3.3
## v tibble 3.0.1 v dplyr 0.8.4
## v tidyr 1.0.2 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## -- Conflicts -------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(rgeos)
## Loading required package: sp
## rgeos version: 0.5-2, (SVN revision 621)
## GEOS runtime version: 3.6.1-CAPI-1.10.1
## Linking to sp version: 1.4-1
## Polygon checking: TRUE
library(maptools)
## Checking rgeos availability: TRUE
library(raster)
##
## Attaching package: 'raster'
## The following object is masked from 'package:dplyr':
##
## select
## The following object is masked from 'package:tidyr':
##
## extract
library(sf)
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(viridis)
## Loading required package: viridisLite
library(rnaturalearth)
library(GSODR)
library(ggrepel)
library(cowplot)
##
## ********************************************************
## Note: As of version 1.0.0, cowplot does not change the
## default ggplot2 theme anymore. To recover the previous
## behavior, execute:
## theme_set(theme_cowplot())
## ********************************************************
Una vez descargado en archivo csv de las estadísticas agropecuarias municipales de Tolima, se leerá con la siguiente instrucción:
datos <- read_csv2("C:/Users/Pablo/Documents/Agro/EVA_Tolima_2.csv")
## Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
## Parsed with column specification:
## cols(
## CODIGO = col_double(),
## DEPARTAMENTO = col_character(),
## COD_MUN = col_double(),
## MUNICIPIO = col_character(),
## GRUPO = col_character(),
## SUBGRUPO = col_character(),
## CULTIVO = col_character(),
## YEAR = col_double(),
## PERIODO = col_character(),
## AREA_SEMBRADA = col_double(),
## AREA_COSECHADA = col_double(),
## PRODUCCION = col_double(),
## RENDIMIENTO = col_double(),
## ESTADO_FISICO_PRODUCCION = col_character(),
## NOMBRE_CIENTIFICO = col_character(),
## CICLO_DEL_CULTIVO = col_character()
## )
A conticuandión, se mostrarán los atributos de los datos, donde la primera tabla muestra los primeros datos que la conforman con la instrucción “head(datos)”, y en la segunda, muestra los datos que están al final de la misma con la instrucción tail(datos).
head(datos)
## # A tibble: 6 x 16
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73055 ARMERO (~ HORT~ ACELGA ACELGA 2012 2012A
## 2 73 TOLIMA 73024 ALPUJARRA HORT~ ACELGA ACELGA 2015 2015A
## 3 73 TOLIMA 73124 CAJAMARCA TUBE~ ACHIRA ACHIRA 2012 2012
## 4 73 TOLIMA 73283 FRESNO FRUT~ AGUACATE AGUACA~ 2007 2007
## 5 73 TOLIMA 73443 MARIQUITA FRUT~ AGUACATE AGUACA~ 2007 2007
## 6 73 TOLIMA 73026 ALVARADO FRUT~ AGUACATE AGUACA~ 2007 2007
## # ... with 7 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO_FISICO_PRODUCCION <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO_DEL_CULTIVO <chr>
tail(datos)
## # A tibble: 6 x 16
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73124 CAJAMARCA HORT~ ZANAHOR~ ZANAHO~ 2017 2017A
## 2 73 TOLIMA 73622 RONCESVA~ HORT~ ZANAHOR~ ZANAHO~ 2017 2017B
## 3 73 TOLIMA 73124 CAJAMARCA HORT~ ZANAHOR~ ZANAHO~ 2017 2017B
## 4 73 TOLIMA 73024 ALPUJARRA HORT~ ZANAHOR~ ZANAHO~ 2017 2017B
## 5 73 TOLIMA 73622 RONCESVA~ HORT~ ZANAHOR~ ZANAHO~ 2018 2018A
## 6 73 TOLIMA 73124 CAJAMARCA HORT~ ZANAHOR~ ZANAHO~ 2018 2018A
## # ... with 7 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO_FISICO_PRODUCCION <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO_DEL_CULTIVO <chr>
A continuacion podremos observar que los cultivos se clasifican en un GRUPO dado, en el cual sus unidades de área estan dadas en hectáreas y las unidades de rendimiento en Ton / ha.
datos %>%
group_by(MUNICIPIO, GRUPO) %>%
summarise(rend_prom = mean(RENDIMIENTO, na.rm = TRUE)) -> rend_resumen
head(rend_resumen)
## # A tibble: 6 x 3
## # Groups: MUNICIPIO [2]
## MUNICIPIO GRUPO rend_prom
## <chr> <chr> <dbl>
## 1 ALPUJARRA CEREALES 6.5
## 2 ALPUJARRA FRUTALES 26.1
## 3 ALPUJARRA HORTALIZAS 4.66
## 4 ALPUJARRA OTROS PERMANENTES 1.02
## 5 ALPUJARRA TUBERCULOS Y PLATANOS 4.95
## 6 ALVARADO CEREALES 3.97
Se observa que los rendimientos más altos corresponden a Hortalizas, Frutales y Cereales. Ahora, veamos cuáles son los municipios con mayor rendimiento para cada grupo de cultivos en 2018
datos %>%
group_by(GRUPO) %>%
summarise(rend_dep = mean(RENDIMIENTO, na.rm = TRUE)) -> rend_tolima
rend_tolima
## # A tibble: 12 x 2
## GRUPO rend_dep
## <chr> <dbl>
## 1 CEREALES 3.90
## 2 FIBRAS 2.45
## 3 FLORES Y FOLLAJES 1.58
## 4 FORESTALES 1.75
## 5 FRUTALES 10.6
## 6 HORTALIZAS 13.3
## 7 LEGUMINOSAS 1.93
## 8 OLEAGINOSAS 0.871
## 9 OTROS PERMANENTES 2.07
## 10 OTROS TRANSITORIOS 1.19
## 11 PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES 3.01
## 12 TUBERCULOS Y PLATANOS 10.5
Ahora se van a apreciar los municipios del departamento de Tolima con mayor rendimiento para cada grupo de cultivos:
datos %>%
filter(YEAR==2018) %>%
group_by(GRUPO, MUNICIPIO) %>%
summarize(max_rend = max(RENDIMIENTO, na.rm = TRUE)) %>%
slice(which.max(max_rend)) -> rend_max_18
rend_max_18
## # A tibble: 11 x 3
## # Groups: GRUPO [11]
## GRUPO MUNICIPIO max_rend
## <chr> <chr> <dbl>
## 1 CEREALES VALLE DE SAN JUAN 36.3
## 2 FIBRAS ARMERO (GUAYABAL) 2.96
## 3 FLORES Y FOLLAJES NATAGAIMA 0.8
## 4 FORESTALES CHAPARRAL 3
## 5 FRUTALES ALPUJARRA 80
## 6 HORTALIZAS VILLARRICA 45
## 7 LEGUMINOSAS MARIQUITA 15
## 8 OLEAGINOSAS SAN LUIS 0.6
## 9 OTROS PERMANENTES CHAPARRAL 11.5
## 10 PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES HONDA 9
## 11 TUBERCULOS Y PLATANOS MURILLO 25
A continuación se mostrarán los municipios con la mayor área cosechada en el año de la evaluación del archivo (2018)
datos %>%
filter(YEAR==2018) %>%
group_by(GRUPO, MUNICIPIO) %>%
summarize(max_area_cosecha = max(AREA_COSECHADA, na.rm = TRUE)) %>%
slice(which.max(max_area_cosecha)) -> area_cosecha_max
area_cosecha_max
## # A tibble: 11 x 3
## # Groups: GRUPO [11]
## GRUPO MUNICIPIO max_area_cosecha
## <chr> <chr> <dbl>
## 1 CEREALES PURIFICACI~ 8736
## 2 FIBRAS ESPINAL 2411
## 3 FLORES Y FOLLAJES NATAGAIMA 10
## 4 FORESTALES CHAPARRAL 130
## 5 FRUTALES FRESNO 6070
## 6 HORTALIZAS IBAGUE 320
## 7 LEGUMINOSAS CAJAMARCA 4300
## 8 OLEAGINOSAS SAN LUIS 105
## 9 OTROS PERMANENTES PLANADAS 11109
## 10 PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES NATAGAIMA 18
## 11 TUBERCULOS Y PLATANOS CAJAMARCA 5000
Observando la tabla anterios muestra que en 2018 el area con mayor producción de cosecha es dado por Otros Permanentes en el municipio de PLANADAS Según el Periodico del Tiempo se puede observar que a pesar del conflicto social que ha tenido este territorio es uno de los mayores productores de Café en Colombia.
Teniendo en cuenta lo anterior seleccionaremos el Café para observar la producción de este (en toneladas) en el municipio de Planadas:
datos %>%
filter(MUNICIPIO=="PLANADAS" & SUBGRUPO=="CAFE") %>%
group_by(YEAR, CULTIVO) -> planadas_cafe
planadas_cafe
## # A tibble: 12 x 16
## # Groups: YEAR, CULTIVO [12]
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2007 2007
## 2 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2008 2008
## 3 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2009 2009
## 4 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2010 2010
## 5 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2011 2011
## 6 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2012 2012
## 7 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2013 2013
## 8 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2014 2014
## 9 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2015 2015
## 10 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2016 2016
## 11 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2017 2017
## 12 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2018 2018
## # ... with 7 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO_FISICO_PRODUCCION <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO_DEL_CULTIVO <chr>
g <- ggplot(aes(x=YEAR, y=PRODUCCION/1000), data = planadas_cafe) + geom_bar(stat='identity') + labs(y='Producción de Café [Ton x 1000]')
g + ggtitle("Evolución de la producción de Café en Planada de 2007 a 2018") + labs(caption= "Basado en los datos de EMA (DANE, 2018)")
En la tabla anterior se puede observar que el año con mayor producción de Café en Planada es 2012. Ahora se darán la información de qué cultivos tuvieron la mayor área cosechada en 2018.
datos %>%
filter(YEAR==2018) %>%
group_by(GRUPO) %>%
summarize(sum_area_cosecha = sum(AREA_COSECHADA, na.rm = TRUE)) %>%
arrange(desc(sum_area_cosecha)) -> total_area_cosecha
total_area_cosecha
## # A tibble: 11 x 2
## GRUPO sum_area_cosecha
## <chr> <dbl>
## 1 OTROS PERMANENTES 120584
## 2 CEREALES 74198
## 3 TUBERCULOS Y PLATANOS 38204
## 4 FRUTALES 30521
## 5 LEGUMINOSAS 10685
## 6 FIBRAS 4034
## 7 HORTALIZAS 902
## 8 FORESTALES 160
## 9 OLEAGINOSAS 105
## 10 PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES 27
## 11 FLORES Y FOLLAJES 10
Para ver los cultivos que componen el grupo de “Otros Permanentes” y verlos de manera organizada en una tabla, se puede hacer consultando directamente en la página del DANE o podremos consultarlo nosotros mismos con el siguiente comando:
datos %>%
filter(GRUPO=="OTROS PERMANENTES" & YEAR==2018) %>%
group_by(CULTIVO) %>%
summarize(sum_cosecha = sum(AREA_COSECHADA, na.rm = TRUE)) %>%
arrange(desc(sum_cosecha)) -> total_cosecha
total_cosecha
## # A tibble: 3 x 2
## CULTIVO sum_cosecha
## <chr> <dbl>
## 1 CAFE 97304
## 2 CACAO 12451
## 3 CAÑA PANELERA 10829
Conociendo que cultivos son los que se cosechan mayormente en el grupo de “Otros Permanente” ahora vamos abuscar cuáles son los municipios con mayor área cosechada para cada cultivo permanente en el año 2018.
datos %>%
filter(YEAR==2018 & GRUPO=="OTROS PERMANENTES") %>%
group_by(CULTIVO, MUNICIPIO) %>%
summarize(max_area2 = max(AREA_COSECHADA, na.rm = TRUE)) %>%
slice(which.max(max_area2)) -> area_cosecha2
area_cosecha2
## # A tibble: 3 x 3
## # Groups: CULTIVO [3]
## CULTIVO MUNICIPIO max_area2
## <chr> <chr> <dbl>
## 1 CACAO ATACO 1901
## 2 CAFE PLANADAS 11109
## 3 CAÑA PANELERA MARIQUITA 2450
A continuación se organizarán los nombres de los grupos de cultivos, dándoles una serie de abreviaturas. Esto se hace para evitar desorden en la tabla y facilitar su lectura.
total_area_cosecha$CROP <- abbreviate(total_area_cosecha$GRUPO, 3)
Ahora se realizara ploteo:
g <- ggplot(aes(x=CROP, y=sum_area_cosecha), data = total_area_cosecha) + geom_bar(stat='identity') + labs(y='Área total cosechada [Ha]')
g+ ggtitle("Superficie total cosechada por grupos de cultivos en 2018 para Tolima") + theme(plot.title = element_text(hjust = 0.5)) +
labs(caption= "Basado en datos de EMA (DANE, 2018)")
Teniendo en cuenta la tabla anterior “Otros Permanentes” son la mayor superficie total cosechada,seguido por cereales, acontinuación analizaremos los datos de cereales en el departamento de Tolima:
datos %>%
filter(YEAR==2018 & GRUPO=="CEREALES") %>%
group_by(CULTIVO, MUNICIPIO) %>%
summarize(max_area2 = max(AREA_COSECHADA, na.rm = TRUE)) %>%
slice(which.max(max_area2)) -> area_cosecha3
area_cosecha3
## # A tibble: 4 x 3
## # Groups: CULTIVO [4]
## CULTIVO MUNICIPIO max_area2
## <chr> <chr> <dbl>
## 1 ARROZ PURIFICACION 8736
## 2 MAIZ ESPINAL 3800
## 3 MAIZ FORRAJERO ARMERO (GUAYABAL) 150
## 4 SORGO FLANDES 150
En cuanto a cereales se puede observar de acuerdo a la tabla anterior que el cereal con mayor cosecha en Tolima es el Arroz en el municipio de Purificación.
A continuación usaremos el archivo que corresponde a Marco Geoestadistico Departamental que está disponible en el Geoportal DANE. Comenzaremos leyendo los datos usando la biblioteca sf:
ant_munic <- sf::st_read("C:/Users/Pablo/Documents/Agro/73_TOLIMA/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
## Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\Pablo\Documents\Agro\73_TOLIMA\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
## Simple feature collection with 47 features and 9 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -76.10574 ymin: 2.871081 xmax: -74.47482 ymax: 5.319342
## CRS: 4326
En un conjunto de características simples, donde se utilizan datos con el sistema de georeferencia WGS84.
ant_munic
## Simple feature collection with 47 features and 9 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -76.10574 ymin: 2.871081 xmax: -74.47482 ymax: 5.319342
## CRS: 4326
## First 10 features:
## DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
## 1 73 73001 IBAGUÉ
## 2 73 73024 ALPUJARRA
## 3 73 73026 ALVARADO
## 4 73 73030 AMBALEMA
## 5 73 73043 ANZOÁTEGUI
## 6 73 73055 ARMERO
## 7 73 73067 ATACO
## 8 73 73124 CAJAMARCA
## 9 73 73148 CARMEN DE APICALA
## 10 73 73152 CASABIANCA
## MPIO_CRSLC MPIO_NAREA MPIO_NANO DPTO_CNMBR
## 1 1906 1377.2552 2017 TOLIMA
## 2 Decreto 650 del 13 de Octubre de 1887 501.5113 2017 TOLIMA
## 3 1540 344.3356 2017 TOLIMA
## 4 1627 238.0448 2017 TOLIMA
## 5 Ordenanza 21 del 30 de Marzo de 1915 469.7113 2017 TOLIMA
## 6 Decreto 1049 de Septiembre 29 de 1908 440.6308 2017 TOLIMA
## 7 Decreto 650 del 13 de Octubre de 1887 1017.6444 2017 TOLIMA
## 8 1913 508.4870 2017 TOLIMA
## 9 Decreto 650 del 13 de Octubre de 1887 190.8361 2017 TOLIMA
## 10 Ordenanza 26 del 22 de Junio de 1896 175.2962 2017 TOLIMA
## Shape_Leng Shape_Area geometry
## 1 2.4803890 0.11217138 POLYGON ((-75.36517 4.67598...
## 2 1.0547137 0.04080342 POLYGON ((-74.99192 3.50459...
## 3 1.0695888 0.02805438 POLYGON ((-74.97668 4.70276...
## 4 1.0091503 0.01940279 POLYGON ((-74.74744 4.94928...
## 5 1.3101775 0.03826692 POLYGON ((-75.20098 4.71414...
## 6 1.4441004 0.03592418 POLYGON ((-74.88687 5.14696...
## 7 2.2528100 0.08276835 POLYGON ((-75.32513 3.65962...
## 8 1.0297142 0.04140370 POLYGON ((-75.48219 4.55883...
## 9 0.7339304 0.01554073 POLYGON ((-74.74471 4.24751...
## 10 1.0707227 0.01428912 POLYGON ((-75.07491 5.12314...
datos %>% filter (MUNICIPIO =="PLANADAS") -> med_datos
head(ant_munic)
## Simple feature collection with 6 features and 9 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -75.5221 ymin: 3.276212 xmax: -74.7059 ymax: 5.147066
## CRS: 4326
## DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR MPIO_CRSLC
## 1 73 73001 IBAGUÉ 1906
## 2 73 73024 ALPUJARRA Decreto 650 del 13 de Octubre de 1887
## 3 73 73026 ALVARADO 1540
## 4 73 73030 AMBALEMA 1627
## 5 73 73043 ANZOÁTEGUI Ordenanza 21 del 30 de Marzo de 1915
## 6 73 73055 ARMERO Decreto 1049 de Septiembre 29 de 1908
## MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area
## 1 1377.2552 2017 TOLIMA 2.480389 0.11217138
## 2 501.5113 2017 TOLIMA 1.054714 0.04080342
## 3 344.3356 2017 TOLIMA 1.069589 0.02805438
## 4 238.0448 2017 TOLIMA 1.009150 0.01940279
## 5 469.7113 2017 TOLIMA 1.310177 0.03826692
## 6 440.6308 2017 TOLIMA 1.444100 0.03592418
## geometry
## 1 POLYGON ((-75.36517 4.67598...
## 2 POLYGON ((-74.99192 3.50459...
## 3 POLYGON ((-74.97668 4.70276...
## 4 POLYGON ((-74.74744 4.94928...
## 5 POLYGON ((-75.20098 4.71414...
## 6 POLYGON ((-74.88687 5.14696...
med_datos
## # A tibble: 168 x 16
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2007 2007
## 2 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2008 2008
## 3 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2009 2009
## 4 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2010 2010
## 5 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2011 2011
## 6 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2013 2013
## 7 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2014 2014
## 8 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2015 2015
## 9 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2016 2016
## 10 73 TOLIMA 73555 PLANADAS FRUT~ AGUACATE AGUACA~ 2017 2017
## # ... with 158 more rows, and 7 more variables: AREA_SEMBRADA <dbl>,
## # AREA_COSECHADA <dbl>, PRODUCCION <dbl>, RENDIMIENTO <dbl>,
## # ESTADO_FISICO_PRODUCCION <chr>, NOMBRE_CIENTIFICO <chr>,
## # CICLO_DEL_CULTIVO <chr>
class(med_datos$COD_MUN)
## [1] "numeric"
datos2 <- datos
datos2$TEMP <- as.character(datos2$COD_MUN)
datos2$MPIO_CCDGO <- as.factor(paste( datos2$TEMP, sep=""))
head(datos2)
## # A tibble: 6 x 18
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73055 ARMERO (~ HORT~ ACELGA ACELGA 2012 2012A
## 2 73 TOLIMA 73024 ALPUJARRA HORT~ ACELGA ACELGA 2015 2015A
## 3 73 TOLIMA 73124 CAJAMARCA TUBE~ ACHIRA ACHIRA 2012 2012
## 4 73 TOLIMA 73283 FRESNO FRUT~ AGUACATE AGUACA~ 2007 2007
## 5 73 TOLIMA 73443 MARIQUITA FRUT~ AGUACATE AGUACA~ 2007 2007
## 6 73 TOLIMA 73026 ALVARADO FRUT~ AGUACATE AGUACA~ 2007 2007
## # ... with 9 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO_FISICO_PRODUCCION <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO_DEL_CULTIVO <chr>, TEMP <chr>,
## # MPIO_CCDGO <fct>
Ahora se van a filtrar los datos de un cultivo en específico, en este caso Café, filtrando solo un año.
datos2 %>% filter(CULTIVO == "CAFE") -> datos3
head(datos3)
## # A tibble: 6 x 18
## CODIGO DEPARTAMENTO COD_MUN MUNICIPIO GRUPO SUBGRUPO CULTIVO YEAR PERIODO
## <dbl> <chr> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 73 TOLIMA 73411 LIBANO OTRO~ CAFE CAFE 2007 2007
## 2 73 TOLIMA 73555 PLANADAS OTRO~ CAFE CAFE 2007 2007
## 3 73 TOLIMA 73001 IBAGUE OTRO~ CAFE CAFE 2007 2007
## 4 73 TOLIMA 73283 FRESNO OTRO~ CAFE CAFE 2007 2007
## 5 73 TOLIMA 73168 CHAPARRAL OTRO~ CAFE CAFE 2007 2007
## 6 73 TOLIMA 73067 ATACO OTRO~ CAFE CAFE 2007 2007
## # ... with 9 more variables: AREA_SEMBRADA <dbl>, AREA_COSECHADA <dbl>,
## # PRODUCCION <dbl>, RENDIMIENTO <dbl>, ESTADO_FISICO_PRODUCCION <chr>,
## # NOMBRE_CIENTIFICO <chr>, CICLO_DEL_CULTIVO <chr>, TEMP <chr>,
## # MPIO_CCDGO <fct>
class(datos3)
## [1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
datos4 <- datos3 %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, PRODUCCION, RENDIMIENTO)
datos4
## # A tibble: 452 x 5
## MUNICIPIO MPIO_CCDGO YEAR PRODUCCION RENDIMIENTO
## <chr> <fct> <dbl> <dbl> <dbl>
## 1 LIBANO 73411 2007 10138 1.34
## 2 PLANADAS 73555 2007 10141 1.28
## 3 IBAGUE 73001 2007 6156 0.9
## 4 FRESNO 73283 2007 10375 1.53
## 5 CHAPARRAL 73168 2007 7654 1.24
## 6 ATACO 73067 2007 6958 1.21
## 7 ROVIRA 73624 2007 5694 1.07
## 8 ORTEGA 73504 2007 4934 1.3
## 9 RIOBLANCO 73616 2007 4951 1.34
## 10 VILLAHERMOSA 73870 2007 4768 1.46
## # ... with 442 more rows
datos4 %>%
gather("YEAR", "PRODUCCION", "RENDIMIENTO" , key = variable, value = number)
## # A tibble: 1,356 x 4
## MUNICIPIO MPIO_CCDGO variable number
## <chr> <fct> <chr> <dbl>
## 1 LIBANO 73411 YEAR 2007
## 2 PLANADAS 73555 YEAR 2007
## 3 IBAGUE 73001 YEAR 2007
## 4 FRESNO 73283 YEAR 2007
## 5 CHAPARRAL 73168 YEAR 2007
## 6 ATACO 73067 YEAR 2007
## 7 ROVIRA 73624 YEAR 2007
## 8 ORTEGA 73504 YEAR 2007
## 9 RIOBLANCO 73616 YEAR 2007
## 10 VILLAHERMOSA 73870 YEAR 2007
## # ... with 1,346 more rows
head(datos4)
## # A tibble: 6 x 5
## MUNICIPIO MPIO_CCDGO YEAR PRODUCCION RENDIMIENTO
## <chr> <fct> <dbl> <dbl> <dbl>
## 1 LIBANO 73411 2007 10138 1.34
## 2 PLANADAS 73555 2007 10141 1.28
## 3 IBAGUE 73001 2007 6156 0.9
## 4 FRESNO 73283 2007 10375 1.53
## 5 CHAPARRAL 73168 2007 7654 1.24
## 6 ATACO 73067 2007 6958 1.21
Esta es una tarea clave. Implica varios pasos para poder convertir la tabla de atributos de formato largo a formato ancho.
datos4 %>%
group_by(MPIO_CCDGO) %>%
mutate(Visit = 1:n()) %>%
gather("YEAR", "PRODUCCION", "RENDIMIENTO", key = variable, value = number) %>%
unite(combi, variable, Visit) %>%
spread(combi, number) -> datos5
head(datos5)
## # A tibble: 6 x 38
## # Groups: MPIO_CCDGO [47]
## MUNICIPIO MPIO_CCDGO PRODUCCION_1 PRODUCCION_10 PRODUCCION_11 PRODUCCION_12
## <chr> <fct> <dbl> <dbl> <dbl> <dbl>
## 1 ALPUJARRA 73024 2150 1434 1474 1505
## 2 ALVARADO 73026 922 827 721 768
## 3 ANZOATEG~ 73043 4103 3535 2772 2952
## 4 ARMERO (~ 73055 430 223 369 337
## 5 ATACO 73067 6958 10120 9145 9364
## 6 CAJAMARCA 73124 1035 1026 933 1011
## # ... with 32 more variables: PRODUCCION_2 <dbl>, PRODUCCION_3 <dbl>,
## # PRODUCCION_4 <dbl>, PRODUCCION_5 <dbl>, PRODUCCION_6 <dbl>,
## # PRODUCCION_7 <dbl>, PRODUCCION_8 <dbl>, PRODUCCION_9 <dbl>,
## # RENDIMIENTO_1 <dbl>, RENDIMIENTO_10 <dbl>, RENDIMIENTO_11 <dbl>,
## # RENDIMIENTO_12 <dbl>, RENDIMIENTO_2 <dbl>, RENDIMIENTO_3 <dbl>,
## # RENDIMIENTO_4 <dbl>, RENDIMIENTO_5 <dbl>, RENDIMIENTO_6 <dbl>,
## # RENDIMIENTO_7 <dbl>, RENDIMIENTO_8 <dbl>, RENDIMIENTO_9 <dbl>,
## # YEAR_1 <dbl>, YEAR_10 <dbl>, YEAR_11 <dbl>, YEAR_12 <dbl>, YEAR_2 <dbl>,
## # YEAR_3 <dbl>, YEAR_4 <dbl>, YEAR_5 <dbl>, YEAR_6 <dbl>, YEAR_7 <dbl>,
## # YEAR_8 <dbl>, YEAR_9 <dbl>
tail(datos5)
## # A tibble: 6 x 38
## # Groups: MPIO_CCDGO [47]
## MUNICIPIO MPIO_CCDGO PRODUCCION_1 PRODUCCION_10 PRODUCCION_11 PRODUCCION_12
## <chr> <fct> <dbl> <dbl> <dbl> <dbl>
## 1 SANTA IS~ 73686 1236 987 1183 1251
## 2 SUAREZ 73770 14 9 9 NA
## 3 VALLE DE~ 73854 1150 1454 947 1001
## 4 VENADILLO 73861 1478 1248 2244 2341
## 5 VILLAHER~ 73870 4768 3453 2921 3015
## 6 VILLARRI~ 73873 3506 1679 1403 1370
## # ... with 32 more variables: PRODUCCION_2 <dbl>, PRODUCCION_3 <dbl>,
## # PRODUCCION_4 <dbl>, PRODUCCION_5 <dbl>, PRODUCCION_6 <dbl>,
## # PRODUCCION_7 <dbl>, PRODUCCION_8 <dbl>, PRODUCCION_9 <dbl>,
## # RENDIMIENTO_1 <dbl>, RENDIMIENTO_10 <dbl>, RENDIMIENTO_11 <dbl>,
## # RENDIMIENTO_12 <dbl>, RENDIMIENTO_2 <dbl>, RENDIMIENTO_3 <dbl>,
## # RENDIMIENTO_4 <dbl>, RENDIMIENTO_5 <dbl>, RENDIMIENTO_6 <dbl>,
## # RENDIMIENTO_7 <dbl>, RENDIMIENTO_8 <dbl>, RENDIMIENTO_9 <dbl>,
## # YEAR_1 <dbl>, YEAR_10 <dbl>, YEAR_11 <dbl>, YEAR_12 <dbl>, YEAR_2 <dbl>,
## # YEAR_3 <dbl>, YEAR_4 <dbl>, YEAR_5 <dbl>, YEAR_6 <dbl>, YEAR_7 <dbl>,
## # YEAR_8 <dbl>, YEAR_9 <dbl>
Con el siguiente comando haremos una copia de la colección de características simples:
ant_munic2 <- ant_munic
Ahora la unión:
ant_munic_stat = left_join(ant_munic2, datos5, by="MPIO_CCDGO")
summary(ant_munic_stat)
## DPTO_CCDGO MPIO_CCDGO MPIO_CNMBR
## 73:47 73001 : 1 ALPUJARRA : 1
## 73024 : 1 ALVARADO : 1
## 73026 : 1 AMBALEMA : 1
## 73030 : 1 ANZOÁTEGUI: 1
## 73043 : 1 ARMERO : 1
## 73055 : 1 ATACO : 1
## (Other):41 (Other) :41
## MPIO_CRSLC MPIO_NAREA MPIO_NANO
## Decreto 650 del 13 de Octubre de 1887: 8 Min. : 65.01 Min. :2017
## 1863 : 2 1st Qu.: 228.86 1st Qu.:2017
## 1866 : 2 Median : 354.43 Median :2017
## Decreto 650 del 13 de octubre de 1887: 2 Mean : 513.60 Mean :2017
## Ordenanza 21 del 30 de Marzo de 1915 : 2 3rd Qu.: 508.00 3rd Qu.:2017
## 1540 : 1 Max. :2102.06 Max. :2017
## (Other) :30
## DPTO_CNMBR Shape_Leng Shape_Area MUNICIPIO
## TOLIMA:47 Min. :0.3735 Min. :0.005301 Length:47
## 1st Qu.:0.9385 1st Qu.:0.018658 Class :character
## Median :1.0707 Median :0.028874 Mode :character
## Mean :1.2286 Mean :0.041809
## 3rd Qu.:1.4512 3rd Qu.:0.041364
## Max. :2.5793 Max. :0.171009
##
## PRODUCCION_1 PRODUCCION_10 PRODUCCION_11 PRODUCCION_12
## Min. : 14.0 Min. : 9 Min. : 9.0 Min. : 115
## 1st Qu.: 642.2 1st Qu.: 311 1st Qu.: 372.5 1st Qu.: 741
## Median : 2046.0 Median : 1444 Median :1211.0 Median :1438
## Mean : 2955.8 Mean : 2786 Mean :2487.5 Mean :2857
## 3rd Qu.: 4601.8 3rd Qu.: 3614 3rd Qu.:3209.8 3rd Qu.:3628
## Max. :10375.0 Max. :13450 Max. :9145.0 Max. :9575
## NA's :9 NA's :9 NA's :9 NA's :13
## PRODUCCION_2 PRODUCCION_3 PRODUCCION_4 PRODUCCION_5
## Min. : 10 Min. : 31.0 Min. : 40.0 Min. : 22.0
## 1st Qu.: 743 1st Qu.: 474.5 1st Qu.: 517.2 1st Qu.: 258.8
## Median : 1558 Median :1395.5 Median :1544.0 Median : 884.5
## Mean : 2663 Mean :2332.4 Mean :2479.7 Mean :1402.3
## 3rd Qu.: 3865 3rd Qu.:3079.8 3rd Qu.:3237.5 3rd Qu.:2303.2
## Max. :10460 Max. :8012.0 Max. :9775.0 Max. :4694.0
## NA's :9 NA's :9 NA's :9 NA's :9
## PRODUCCION_6 PRODUCCION_7 PRODUCCION_8 PRODUCCION_9
## Min. : 0.0 Min. : 8 Min. : 6.0 Min. : 6
## 1st Qu.: 185.5 1st Qu.: 268 1st Qu.: 280.2 1st Qu.: 310
## Median : 989.5 Median :1344 Median :1315.5 Median : 1426
## Mean : 2246.9 Mean :2033 Mean :2276.2 Mean : 2778
## 3rd Qu.: 2716.0 3rd Qu.:2760 3rd Qu.:3183.0 3rd Qu.: 3658
## Max. :15550.0 Max. :7659 Max. :9122.0 Max. :13060
## NA's :9 NA's :9 NA's :9 NA's :9
## RENDIMIENTO_1 RENDIMIENTO_10 RENDIMIENTO_11 RENDIMIENTO_12
## Min. :0.340 Min. :0.670 Min. :0.6600 Min. :0.6200
## 1st Qu.:1.022 1st Qu.:0.920 1st Qu.:0.7600 1st Qu.:0.7800
## Median :1.245 Median :1.025 Median :0.8400 Median :0.8600
## Mean :1.171 Mean :1.006 Mean :0.9611 Mean :0.9894
## 3rd Qu.:1.377 3rd Qu.:1.097 3rd Qu.:0.9400 3rd Qu.:0.9500
## Max. :1.530 Max. :1.220 Max. :1.8200 Max. :1.8700
## NA's :9 NA's :9 NA's :9 NA's :13
## RENDIMIENTO_2 RENDIMIENTO_3 RENDIMIENTO_4 RENDIMIENTO_5
## Min. :0.280 Min. :0.3000 Min. :0.6300 Min. :0.4200
## 1st Qu.:0.895 1st Qu.:0.9125 1st Qu.:0.9525 1st Qu.:0.5300
## Median :1.170 Median :1.0000 Median :1.0800 Median :0.5500
## Mean :1.122 Mean :1.0016 Mean :1.0842 Mean :0.5637
## 3rd Qu.:1.395 3rd Qu.:1.1000 3rd Qu.:1.2300 3rd Qu.:0.5800
## Max. :1.540 Max. :1.3000 Max. :1.5100 Max. :1.0000
## NA's :9 NA's :9 NA's :9 NA's :9
## RENDIMIENTO_6 RENDIMIENTO_7 RENDIMIENTO_8 RENDIMIENTO_9
## Min. :0.4000 Min. :0.7000 Min. :0.5700 Min. :0.5900
## 1st Qu.:0.7000 1st Qu.:0.7600 1st Qu.:0.8100 1st Qu.:0.9025
## Median :1.0000 Median :0.8000 Median :0.8750 Median :1.0100
## Mean :0.8865 Mean :0.8037 Mean :0.8682 Mean :0.9792
## 3rd Qu.:1.0000 3rd Qu.:0.8475 3rd Qu.:0.9275 3rd Qu.:1.0600
## Max. :1.1400 Max. :0.9100 Max. :1.1400 Max. :1.1800
## NA's :10 NA's :9 NA's :9 NA's :9
## YEAR_1 YEAR_10 YEAR_11 YEAR_12 YEAR_2
## Min. :2007 Min. :2016 Min. :2017 Min. :2018 Min. :2008
## 1st Qu.:2007 1st Qu.:2016 1st Qu.:2017 1st Qu.:2018 1st Qu.:2008
## Median :2007 Median :2016 Median :2017 Median :2018 Median :2008
## Mean :2007 Mean :2016 Mean :2017 Mean :2018 Mean :2008
## 3rd Qu.:2007 3rd Qu.:2016 3rd Qu.:2017 3rd Qu.:2018 3rd Qu.:2008
## Max. :2007 Max. :2017 Max. :2018 Max. :2018 Max. :2008
## NA's :9 NA's :9 NA's :9 NA's :13 NA's :9
## YEAR_3 YEAR_4 YEAR_5 YEAR_6 YEAR_7
## Min. :2009 Min. :2010 Min. :2011 Min. :2012 Min. :2013
## 1st Qu.:2009 1st Qu.:2010 1st Qu.:2011 1st Qu.:2012 1st Qu.:2013
## Median :2009 Median :2010 Median :2011 Median :2012 Median :2013
## Mean :2009 Mean :2010 Mean :2011 Mean :2012 Mean :2013
## 3rd Qu.:2009 3rd Qu.:2010 3rd Qu.:2011 3rd Qu.:2012 3rd Qu.:2013
## Max. :2009 Max. :2010 Max. :2011 Max. :2013 Max. :2014
## NA's :9 NA's :9 NA's :9 NA's :9 NA's :9
## YEAR_8 YEAR_9 geometry
## Min. :2014 Min. :2015 POLYGON :47
## 1st Qu.:2014 1st Qu.:2015 epsg:4326 : 0
## Median :2014 Median :2015 +proj=long...: 0
## Mean :2014 Mean :2015
## 3rd Qu.:2014 3rd Qu.:2015
## Max. :2015 Max. :2016
## NA's :9 NA's :9
Recuerde que si no ha instalado estos paquetes tiene que hacerlo antes de llamar la libreria.
library(RColorBrewer)
library(leaflet)
A continuación se mostrarán los datos de cada municipio con la cantidad de producción cafetera obtenidos en el año 2018.
bins <- c(0, 250, 500, 1000, 2000, 5000, 10000, 15000)
pal <- colorBin("YlOrRd", domain = ant_munic_stat$PRODUCCION_12, bins = bins)
mapa <- leaflet(data = ant_munic_stat) %>%
addTiles() %>%
addPolygons(label = ~PRODUCCION_12,
popup = ~MPIO_CNMBR,
fillColor = ~pal(PRODUCCION_12),
color = "#444444",
weight = 1,
smoothFactor = 0.5,
opacity = 1.0,
fillOpacity = 0.5,
highlightOptions = highlightOptions(color = "white", weight = 2, bringToFront = TRUE)
) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addLegend("bottomright", pal = pal, values = ~PRODUCCION_12,
title = "Producción Cafetera en Tolima [Ton] (2018)",
opacity = 1
)
mapa
Como se puede observar en el mapa los municipios de Planadas, Chaparral, Rio Blanco entre otros son los mayores productores de Café en el departamento de Tolima.
sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: i386-w64-mingw32/i386 (32-bit)
## Running under: Windows 10 x64 (build 18362)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252
## [3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Spain.1252
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] leaflet_2.0.3 RColorBrewer_1.1-2 cowplot_1.0.0
## [4] ggrepel_0.8.2 GSODR_2.1.0 rnaturalearth_0.1.0
## [7] viridis_0.5.1 viridisLite_0.3.0 sf_0.9-2
## [10] raster_3.0-12 maptools_0.9-9 rgeos_0.5-2
## [13] sp_1.4-1 forcats_0.5.0 stringr_1.4.0
## [16] dplyr_0.8.4 purrr_0.3.3 readr_1.3.1
## [19] tidyr_1.0.2 tibble_3.0.1 ggplot2_3.3.0
## [22] tidyverse_1.3.0 here_0.1
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.3 knitr_1.28 xml2_1.2.2
## [4] magrittr_1.5 units_0.6-6 hms_0.5.3
## [7] rvest_0.3.5 tidyselect_1.0.0 xtable_1.8-4
## [10] colorspace_1.4-1 lattice_0.20-40 R6_2.4.1
## [13] rlang_0.4.5 fansi_0.4.1 broom_0.5.6
## [16] xfun_0.12 e1071_1.7-3 dbplyr_1.4.3
## [19] modelr_0.1.6 withr_2.1.2 ellipsis_0.3.0
## [22] htmltools_0.4.0 class_7.3-15 assertthat_0.2.1
## [25] rprojroot_1.3-2 digest_0.6.25 lifecycle_0.2.0
## [28] shiny_1.4.0 haven_2.2.0 rmarkdown_2.1
## [31] compiler_3.6.3 cellranger_1.1.0 pillar_1.4.3
## [34] leaflet.providers_1.9.0 scales_1.1.0 backports_1.1.5
## [37] generics_0.0.2 classInt_0.4-3 lubridate_1.7.8
## [40] jsonlite_1.6.1 httpuv_1.5.2 pkgconfig_2.0.3
## [43] rstudioapi_0.11 munsell_0.5.0 fastmap_1.0.1
## [46] httr_1.4.1 tools_3.6.3 grid_3.6.3
## [49] nlme_3.1-144 data.table_1.12.8 gtable_0.3.0
## [52] KernSmooth_2.23-16 utf8_1.1.4 DBI_1.1.0
## [55] cli_2.0.2 crosstalk_1.0.0 readxl_1.3.1
## [58] yaml_2.2.1 crayon_1.3.4 gridExtra_2.3
## [61] later_1.0.0 farver_2.0.3 htmlwidgets_1.5.1
## [64] promises_1.1.0 codetools_0.2-16 fs_1.4.1
## [67] vctrs_0.2.4 mime_0.9 glue_1.3.1
## [70] evaluate_0.14 labeling_0.3 reprex_0.3.0
## [73] stringi_1.4.6 foreign_0.8-75
Gracias.