Juan Pablo Cañon Sosa

01 Octubre 2020

1.¿Porque este Notebook?

Mediante este cuaderno R Markdown Notebook. Usaremos algunas librerias como \(dpylr\) que nos proporciona “gramatica” para la manipulacion y operaciones de data frames. mas info), \(sf\) soporte para funciones simples mas info y \(leaflet\) (la cual nos permite la creacion de mapas web. mas info) entre otras.

2. Funciones de GIS

La exploración de estadísticas no espaciales es fundamental para comprender lo que sucede en los territorios. Varias bibliotecas de 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 los municipios cuyos rendimientos de cultivos son sobresalientes (o, alternativamente, más bajos que el promedio).

Verificamos el directorio de trabajo usando la funcion \(getwd()\):

getwd()
## [1] "C:/Users/JUANPABLO/Documents/R/GB/Notebooks"

Configuramos el directorio de trabajo usando la funcion \(setwd()\):

setwd("C:/Users/JUANPABLO/Documents/R/GB/Datos")

Usamos la funcion \(rm\) la cual nos permite remover los objetos del entorno de trabajo, limiando asi la memoria con lo cual tendremos un mejor desempeño en nuestro entorno de trabajo:

rm(list = ls())

Ahora instalaremos las librerias que nescesitamos. Usanodo el siguiente comando se instalan los paquetes solo si no se han 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)

Cargamos las librerias usando la funcion \(library\):

library(here)
## here() starts at C:/Users/JUANPABLO/Documents/R/GB/Notebooks
library(tidyverse)
## -- Attaching packages -------------------------------------------------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.3     v dplyr   1.0.2
## v tidyr   1.1.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-5, (SVN revision 640)
##  GEOS runtime version: 3.8.0-CAPI-1.13.1 
##  Linking to sp version: 1.4-2 
##  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.8.0, GDAL 3.0.4, PROJ 6.3.1
library(viridis)
## Loading required package: viridisLite
library(rnaturalearth)
library(GSODR)
library(ggrepel)
library(cowplot)
library(dplyr)
library(ggplot2)
library(RColorBrewer)
library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:viridis':
## 
##     viridis_pal
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor

3. Explorando las estadisticas agicolas en Valle del Cauca

Usamos la funcion \(read_csv\) la cual nos permite leer aechivos csv por sus siglas en ingles comma separated values (valores separados por comas) para leer el archivo EVA_valle_del_cauca.csv previamente descargado de la pagina oficial sobre datos de Evaluaciones Agropecuarias Municipales EVA, y guardamos los datos del archivo en un objeto que llamaremos datos:

datos <- read_csv("C:/Users/JUANPABLO/Documents/R/GB/Datos/EVA_Valle_del_Cauca.csv")
## Parsed with column specification:
## cols(
##   COD_DEP = col_double(),
##   DEPARTAMENTO = col_character(),
##   COD_MUN = col_double(),
##   MUNICIPIO = col_character(),
##   GRUPO = col_character(),
##   SUBGRUPO = col_character(),
##   CULTIVO = col_character(),
##   YEAR = col_double(),
##   Area_Siembra = col_double(),
##   Area_Cosecha = col_double(),
##   Produccion = col_double(),
##   Rendimiento = col_double(),
##   ESTADO = col_character(),
##   CICLO = col_character()
## )

Para observar los primero 6 atributos del objeto datos usamos:

head(datos)

Para observar los ultimos 6 atriburos del objeto datos usamos:

tail(datos)

Observamos quen en el objeto datos tenemos algunos atributos como la \(superficie\) \(sembrada\), \(superficie\) \(cosechada\) y \(rendimiento\) de varios cultivos en el departamento del Valle del Cauca.

En esta tabla, no tenemos unidades. Sin embargo, si revisamos el archivo csv original, encontramos que las área unidades de son \(hectáreas\) y que las \(rendimiento\) unidades de son \(Ton\) / \(ha\).

Hacemos un promedio del rendimiento durante varios años, por grupo y municipio usando la funcion \(group_by\) la cual toma una tabla existente y la convierte en una tabla agrupada donde las operaciones se realizan por grupo, y almacenamos los datos en un nuevo objeto que llamaremos resumen_rend:

resumen_rend <- datos %>%
  group_by(MUNICIPIO, GRUPO) %>%
  summarise(rend_prom = mean(Rendimiento, na.rm = TRUE))
## `summarise()` regrouping output by 'MUNICIPIO' (override with `.groups` argument)

Como observamos la funcion nos marca el error summarise() regrouping output by ‘MUNICIPIO’ (override with .groups argument) el cual podemos solucionar agregando , .groups=‘drop_last’(esto es tambien dplyr 1.0) al final de la linea de la funcion \(summarise\) asi:

resumen_rend <- datos %>%
  group_by(MUNICIPIO, GRUPO) %>%
  summarise(rend_prom = mean(Rendimiento, na.rm = TRUE), .groups='drop_last')

Observamos los atributos del objeto resumen_rend usando:

resumen_rend

Calculamos el rendimiento promedio por GRUPO en los municipios del departamento del Valle del Cauca usando la funcion \(group_by\) y seleccionando la fila GRUPO en referencia a clasificacion por grupo de cultivo, almacenamos los datos obtenidos en un nuevo objeto que llamaremos ren_valle:

rend_valle <- datos %>%
  group_by(GRUPO) %>%
  summarise(rend_dep = mean(Rendimiento, na.rm = TRUE), .groups='drop_last')

Observamos los \(rendimientos\) de cada \(cultivo\) almacenados en el objeto rend_valle usando:

rend_valle

Podemos observar que los rendimientos mas altos corresponden a OTROS PERMANENTES, HORTALIZAS Y FLORES Y FOLLAJES.

Podemos obtener rendimentos mas especificos, usando el codigo anterior y clasificando esta vez por SUBGRUPO de cultivo, el cual nos arroja unos datos mas especificos, almacenamos los datos en un nuevo objeto que llamamos rend_valle_sub:

rend_valle_sub <- datos %>%
  group_by(SUBGRUPO) %>%
  summarise(rend_dep = mean(Rendimiento, na.rm = TRUE), .groups='drop_last')

Observamos los rendimientos de cultivos clasificados por SUBGRUPOS almacenados en el objeto rend_valle_sub usando:

rend_valle_sub

Encontramos los municipios con mayor rendimiento para cada grupo de cultivos en 2018 usando las funciones \(filter\), \(group_by\) que nos permite agrupar los datos por una o mas variables, \(summarize\) la cual crea un nuevo data.frame con una o mas filas para cada combinacion de variables agrupadas y \(slice\) que nos permite indicializar las filas por su locacion:

rend_max_18 <- datos %>% 
  filter(YEAR==2018) %>% 
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_rend = max(Rendimiento, na.rm = TRUE), .groups='drop_last') %>%
    slice(which.max(max_rend))

Visualizamos los municipios con mayor area cosechada para cada cultivo en 2018 usando:

rend_max_18

Para encontrar los municipios con mayor area cosechada para cada grupo de cultivos en 2018 usando el codigo anterior y cambiando Rendimiento por Area_cosecha y almacenamos los datos en un nuevo data.frame que llamaremos area_cosecha_max:

area_cosecha_max <- datos %>% 
  filter(YEAR==2018) %>% 
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_area_cosecha = max(Area_Cosecha, na.rm = TRUE), .groups='drop_last') %>%
    slice(which.max(max_area_cosecha))

Observamos los atributos del data.frame area_cosecha_max:

area_cosecha_max

Observamos que el rendimiendo maximo en el año 2018 se produjo la ciudad de PALMIRA con un total de 27554 hectareas (ha) de OTROS CULTIVOS PERMANENTES.

Podemos obtener un cultivo mas especifico, usando el codigo anterior y clasificando esta vez por SUBGRUPO de cultivo y agregando el municipio de mayor rendimiento en este cado PALMIRA, almacenamos los datos en un nuevo data.frame que llamamos rend_valle_sub:

area_cosecha_max_sub <- datos %>% 
  filter(YEAR==2018) %>% 
  group_by(SUBGRUPO, MUNICIPIO) %>%
  summarize(max_area_cosecha = max(Area_Cosecha, na.rm = TRUE), .groups='drop_last') %>%
    slice(which.max(max_area_cosecha))

area_cosecha_max_sub

Observamos que en este data.frame obtuvimos un rendimiento mas especifico de cultivo el cual corresponde a la ciudad de PALMIRA con un total de 27554 hectareas de CAÑA. Esto nos permite intuir que mucha de la economia de esta ciudad resulta de la produccion de CAÑA.

Filtramos la produccion de CAÑA en PALMIRA para cada año usando las funciones \(filter\) filtrando por MUNICIPIO y SUBGRUPO, y \(grupo_by\) para agrupar por año(YEAR) YEAR y cULTIVO, almacenamos los datos en un nuevo data.frame que llamaremos palmira_caña:

palmira_caña <- datos %>% 
  filter(MUNICIPIO=="PALMIRA" & SUBGRUPO=="CAÑA") %>% 
  group_by(YEAR, CULTIVO) 

palmira_caña

Puesto que podemos entender mejor los datos de manera grafica, usamos la funcion \(ggplot\), provista por la libreria \(ggplot2\) que nos permite convertir un \(data.frame\) en un objeto \(grafico\), almacenamos los attributos en una nueva variable llamada g:

g <- ggplot(aes(x=YEAR, y=Produccion/1000, fill=YEAR), data = palmira_caña) + geom_bar(stat='identity') + labs(y='Produccion de Caña [Ton x 1000]') + labs(x='AÑO') 

g + ggtitle("Evolucion de la Produccion de Caña en Palmira desde 2007 a 2018") + labs(caption= "Basado en datos de EAM (DANE, 2018)") + scale_fill_distiller(name ="Añ", palette= "Spectral", breaks= pretty_breaks(n=10))

Usamos las funciones \(filter\), \(group_by\), \(summarize\) y \(arrange\) con las cuales podemos saber cuales cultivos tubieron la mayor área cosechada en 2018, almacenamos los datos en un nuevo data.frame que llamaremos total_area_cosecha:

total_area_cosecha <- datos %>% 
  filter(YEAR==2018) %>% 
  group_by(GRUPO) %>%
  summarize(Sum_area_cosecha = sum(Area_Cosecha, na.rm = TRUE), .groups='drop_last') %>%
     arrange(desc(Sum_area_cosecha))

total_area_cosecha

Usamos las funciones \(filter\), \(group_by\), \(summarize\) y \(arrange\) para ver los \(cultivos\) con el mayor \(rendimiento\) en el departamento del Valle del Cauca en el año 2018, guardamos los datos en un nuevo data.frame que llamaremos cosecha_total:

cosecha_total <- datos %>%
  filter(GRUPO=="OTROS PERMANENTES" & YEAR==2018) %>%
  group_by(CULTIVO) %>%
  summarize(Sum_cosecha = sum(Area_Cosecha, na.rm = TRUE), .groups='drop_last') %>%
     arrange(desc(Sum_cosecha))

cosecha_total

Observamos que en el año 2018 se ubtuvo un mayor rendimiento en el cultivo de CAÑA AZUCARERA, seguida de CAFE, CAÑA PALEÑERA y CACAO.

Usamos las funciones \(filter\), \(group_by\), \(summarize\) y \(slice\) para ver los \(municipios\) con el mayor \(rendimiento\) por *CULTIVO PERMANENTE en el año 2018 clasificando la informacion por CULTIVO y MUNICIPIO, guardamos los datos en un nuevo data.frame que llamaremos max_area_mun:

max_area_mun <- datos %>% 
  filter(YEAR==2018 & GRUPO=="OTROS PERMANENTES") %>% 
  group_by(CULTIVO, MUNICIPIO) %>%
  summarize(max_area2 = max(Area_Cosecha, na.rm = TRUE), .groups='drop_last') %>%
    slice(which.max(max_area2))

max_area_mun

Agregamos una \(columna\) al data.frame total_area_cosecha, la cual llamaremos COSECHA, usamos la funcion \(abbreviate\) que nos permite abreviar *GRUPO** de cultivo a caracteres de longitud minima, esto para ordenar la trama:

total_area_cosecha$COSECHA <- abbreviate(total_area_cosecha$GRUPO, 3)

Usamos la funcion \(ggplot\) para convertir el data.frame total_area_cosecha en un grafico que nos permitira comprender mejor los datos de \(area\) \(cosechada\):

g <- ggplot(aes(x=COSECHA, y=Sum_area_cosecha, fill=COSECHA), data = total_area_cosecha) + geom_bar(stat='identity', colour = "blue") + labs(y='Area Total de Cosecha [Ha]') + labs(x='GRUPO DE CULTIVO')   + scale_fill_manual(values=c("red", "blue", "green", "yellow", "tomato", "seagreen", "salmon", "royalblue3", "wheat1", "#66CC99"))
g+ ggtitle("Superficie total cosechada por grupos de cultivos en 2018 para  Valle") + theme(plot.title = element_text(hjust = 0.5)) +labs(caption= "Basado en datos de EAM (DANE, 2018)")

4.Incorporacion de las estadisticas agricolas a los municipios

Leemos los datos del \(Marco\) \(Geoestadistico\) \(Departamental\) descargado de DANE Geoportal, usando la libreria \(sf\) y los almacenamos en un nuevo data.frame que llamaremos Vall_munic:

vall_munic <- sf::st_read("C:/Users/JUANPABLO/Documents/R/GB/Datos/MGN2017_76_VALLE_DEL_CAUCA/76_VALLE_DEL_CAUCA/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
## Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\JUANPABLO\Documents\R\GB\Datos\MGN2017_76_VALLE_DEL_CAUCA\76_VALLE_DEL_CAUCA\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
## Simple feature collection with 42 features and 9 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -77.54977 ymin: 3.091239 xmax: -75.70724 ymax: 5.047394
## geographic CRS: WGS 84

Observamos los atributos del \(data.frame\) vall_munic:

vall_munic$MPIO_CNMBR
##  [1] "CALI"         "ANDALUCÍA"    "ANSERMANUEVO" "ARGELIA"      "BUGA"        
##  [6] "BUGALAGRANDE" "CAICEDONIA"   "CALIMA"       "CANDELARIA"   "CARTAGO"     
## [11] "EL ÁGUILA"    "EL CAIRO"     "EL CERRITO"   "EL DOVIO"     "FLORIDA"     
## [16] "GINEBRA"      "GUACARÍ"      "ALCALÁ"       "OBANDO"       "PALMIRA"     
## [21] "PRADERA"      "RESTREPO"     "RIOFRÍO"      "ROLDANILLO"   "SAN PEDRO"   
## [26] "SEVILLA"      "TORO"         "TRUJILLO"     "TULUÁ"        "ULLOA"       
## [31] "VERSALLES"    "VIJES"        "YOTOCO"       "YUMBO"        "ZARZAL"      
## [36] "LA VICTORIA"  "LA UNIÓN"     "LA CUMBRE"    "JAMUNDÍ"      "BOLÍVAR"     
## [41] "DAGUA"        "BUENAVENTURA"
vall_munic$MPIO_CCDGO
##  [1] "76001" "76036" "76041" "76054" "76111" "76113" "76122" "76126" "76130"
## [10] "76147" "76243" "76246" "76248" "76250" "76275" "76306" "76318" "76020"
## [19] "76497" "76520" "76563" "76606" "76616" "76622" "76670" "76736" "76823"
## [28] "76828" "76834" "76845" "76863" "76869" "76890" "76892" "76895" "76403"
## [37] "76400" "76377" "76364" "76100" "76233" "76109"

Puesto que nuestro proposito es usar la funcion \(left_join\) para unir los municipios y las estadistica agricolas seleccionadas.

Necesitamos un atributo común (o variable compartida) en el que basar la unión. El mejor atributo es una identificación. En vall_munic , el atributo MPIO_CCDGO parece ser el mas apropiado (tiene un valor 76001 para CALI). En datos , el atributo correspondiente es COD_MUN (lee 76001 para CALI).

Filtramos los datos correspondientes a la ciudad de CALI usando la funcion \(filter\) y alacenamos los datos en un nuevo data.frame que llamamos datos_cali:

(datos_cali <- datos %>% filter (MUNICIPIO =="CALI") )

A partir del \(data.frame\) datos creamos un nuevo \(data.frame\) que llamamos datos2, agregamos una nueva columna que llamamos TEMP en la que almacenamos los atributos de la columna COD_MUN y le asignamos la clase \(character\) usando la funcion \(as.character\):

datos2 <- datos

datos2$TEMP <-  as.character(datos2$COD_MUN)

Agregamos una nueva columna al \(data.frame\) datos2 que llamamos MPIO_CCDGO en la que almacenamos los atributos de la columna TEMP y le asignamos la clase \(factor\) usando la funcion \(as.factor\):

datos2$MPIO_CCDGO <- as.factor(datos2$TEMP)

datos2

Produccion del Cultivo de CAÑA AZUCARERA

USando la funcion \(filter\), filtramos los datos seleccionando dos atributos relevantes, almacenamos los datos filtrados en un nuevo \(data.frame\) que llmamos datosC_A2:

datosC_A2 <- datos2 %>% filter(CULTIVO == "CAÑA AZUCARERA")

Usando la funcion \(dplyr::select\) seleccionamos las variables del \(data.frame\) datosC_A2 que nos interesan y creamos un nuevo \(data.frame\) que llamamos datosC_A3 en el cual almacenamos las variables seleccionadas:

(datosC_A3 <- datosC_A2 %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, Produccion, Rendimiento))

Usamos la funcion \(gather\) la cual nos permite reunir las columnas en pares clave-valor (key-vale), Reunimos las variables Produccion y Rendimiento en el \(data.frame\) datosC_A3:

datosC_A3 %>% 
  gather("YEAR", "Produccion", "Rendimiento" , key = variable, value = number)

Usamos las funciones \(group_by\), \(mutate\) que agrega nuevas variables y conserva las existentes, \(gather\), \(unite\) con la cual pegamos varias columnas en una y \(spread\) con la que distribuimos un pas key-value en varias columnas, almacenamos los datos en un nuevo \(data.frame\) que llamamos datosC_A4:

datosC_A4 <- datosC_A3 %>% 
  group_by(MPIO_CCDGO) %>% 
  mutate(Visit = 1:n()) %>% 
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number) %>% 
  unite(combi, variable, Visit) %>%
  spread(combi, number)

head(datosC_A4)

Observamos los ultimos atributos del data.frame datosC_A4:

tail(datosC_A4)

A partir del \(data.frame\) \(sf\) vall_mun creamos una copia que llalamos vall_mun2:

vall_munic2 <- vall_munic

Usamos la funcion \(left_join\) la cual agrega columnas de y a x, haciendo coincidir las filas en x, para unir las \(data.frame\) \(sf\) vall_munic2 y datosC_A4, almacenamos las uniones en un nuevo \(data.frame\) \(sf\) que llamamos vall_munic_stat:

vall_munic_stat <- left_join(vall_munic2, datosC_A4, by="MPIO_CCDGO")

Usamos la funcion \(summary\) que nos permite resumir los datos del \(data.frame\) vall_munic_stat:

summary(vall_munic_stat)
##   DPTO_CCDGO         MPIO_CCDGO         MPIO_CNMBR         MPIO_CRSLC       
##  Length:42          Length:42          Length:42          Length:42         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##    MPIO_NAREA        MPIO_NANO     DPTO_CNMBR          Shape_Leng    
##  Min.   :  41.86   Min.   :2017   Length:42          Min.   :0.4538  
##  1st Qu.: 191.01   1st Qu.:2017   Class :character   1st Qu.:0.7223  
##  Median : 266.71   Median :2017   Mode  :character   Median :0.9059  
##  Mean   : 492.04   Mean   :2017                      Mean   :1.1602  
##  3rd Qu.: 431.81   3rd Qu.:2017                      3rd Qu.:1.3207  
##  Max.   :6292.50   Max.   :2017                      Max.   :6.5953  
##                                                                      
##    Shape_Area        MUNICIPIO          Produccion_1     Produccion_10    
##  Min.   :0.003409   Length:42          Min.   :   4063   Min.   :  11793  
##  1st Qu.:0.015552   Class :character   1st Qu.: 102165   1st Qu.: 180887  
##  Median :0.021696   Mode  :character   Median : 283748   Median : 308170  
##  Mean   :0.039988                      Mean   : 569315   Mean   : 618102  
##  3rd Qu.:0.035099                      3rd Qu.: 661838   3rd Qu.: 711096  
##  Max.   :0.510779                      Max.   :3999438   Max.   :3992357  
##                                        NA's   :12        NA's   :12       
##  Produccion_11     Produccion_12      Produccion_2      Produccion_3    
##  Min.   :  12892   Min.   :  14573   Min.   :   3231   Min.   :   4269  
##  1st Qu.: 193732   1st Qu.: 228639   1st Qu.:  88996   1st Qu.: 131610  
##  Median : 388715   Median : 505352   Median : 265650   Median : 352734  
##  Mean   : 692881   Mean   : 755331   Mean   : 518394   Mean   : 625183  
##  3rd Qu.: 812230   3rd Qu.: 919580   3rd Qu.: 654869   3rd Qu.: 782539  
##  Max.   :4085384   Max.   :4300436   Max.   :3597005   Max.   :4546116  
##  NA's   :14        NA's   :14        NA's   :12        NA's   :12       
##   Produccion_4      Produccion_5      Produccion_6      Produccion_7    
##  Min.   :   3911   Min.   :   4058   Min.   :  10036   Min.   :   9603  
##  1st Qu.: 114951   1st Qu.: 143036   1st Qu.: 131047   1st Qu.: 135971  
##  Median : 286009   Median : 371322   Median : 340198   Median : 352980  
##  Mean   : 541493   Mean   : 605724   Mean   : 555615   Mean   : 576527  
##  3rd Qu.: 699303   3rd Qu.: 711084   3rd Qu.: 651481   3rd Qu.: 675960  
##  Max.   :3531749   Max.   :3916935   Max.   :3588616   Max.   :3723457  
##  NA's   :12        NA's   :12        NA's   :12        NA's   :12       
##   Produccion_8      Produccion_9     Rendimiento_1    Rendimiento_10 
##  Min.   :   5875   Min.   :    495   Min.   : 82.92   Min.   :107.1  
##  1st Qu.: 189541   1st Qu.: 170866   1st Qu.:112.21   1st Qu.:117.6  
##  Median : 428494   Median : 416130   Median :114.15   Median :127.3  
##  Mean   : 653217   Mean   : 649238   Mean   :114.93   Mean   :123.9  
##  3rd Qu.: 837314   3rd Qu.: 808216   3rd Qu.:120.77   3rd Qu.:128.5  
##  Max.   :3899980   Max.   :4010743   Max.   :129.34   Max.   :139.2  
##  NA's   :12        NA's   :12        NA's   :12       NA's   :12     
##  Rendimiento_11  Rendimiento_12  Rendimiento_2    Rendimiento_3   
##  Min.   :119.9   Min.   :134.1   Min.   : 85.19   Min.   : 99.48  
##  1st Qu.:135.1   1st Qu.:144.2   1st Qu.:114.89   1st Qu.:111.19  
##  Median :146.2   Median :156.0   Median :121.27   Median :118.30  
##  Mean   :141.4   Mean   :150.1   Mean   :121.96   Mean   :118.99  
##  3rd Qu.:148.1   3rd Qu.:156.1   3rd Qu.:126.32   3rd Qu.:125.04  
##  Max.   :160.4   Max.   :156.1   Max.   :174.76   Max.   :140.34  
##  NA's   :14      NA's   :14      NA's   :12       NA's   :12      
##  Rendimiento_4    Rendimiento_5    Rendimiento_6    Rendimiento_7   
##  Min.   : 86.91   Min.   : 96.62   Min.   : 86.95   Min.   : 96.62  
##  1st Qu.:110.67   1st Qu.:123.24   1st Qu.: 98.45   1st Qu.:108.76  
##  Median :123.04   Median :130.76   Median :102.06   Median :113.42  
##  Mean   :119.46   Mean   :129.45   Mean   :105.38   Mean   :115.31  
##  3rd Qu.:126.98   3rd Qu.:131.69   3rd Qu.:108.09   3rd Qu.:117.19  
##  Max.   :148.78   Max.   :200.69   Max.   :156.48   Max.   :153.00  
##  NA's   :12       NA's   :12       NA's   :12       NA's   :12      
##  Rendimiento_8    Rendimiento_9        YEAR_1        YEAR_10        YEAR_11    
##  Min.   : 81.31   Min.   : 92.01   Min.   :2007   Min.   :2016   Min.   :2017  
##  1st Qu.:118.66   1st Qu.:116.18   1st Qu.:2007   1st Qu.:2016   1st Qu.:2017  
##  Median :125.77   Median :121.96   Median :2007   Median :2016   Median :2017  
##  Mean   :122.65   Mean   :121.19   Mean   :2007   Mean   :2016   Mean   :2017  
##  3rd Qu.:128.92   3rd Qu.:125.28   3rd Qu.:2007   3rd Qu.:2016   3rd Qu.:2017  
##  Max.   :138.84   Max.   :146.06   Max.   :2009   Max.   :2018   Max.   :2017  
##  NA's   :12       NA's   :12       NA's   :12     NA's   :12     NA's   :14    
##     YEAR_12         YEAR_2         YEAR_3         YEAR_4         YEAR_5    
##  Min.   :2018   Min.   :2008   Min.   :2009   Min.   :2010   Min.   :2011  
##  1st Qu.:2018   1st Qu.:2008   1st Qu.:2009   1st Qu.:2010   1st Qu.:2011  
##  Median :2018   Median :2008   Median :2009   Median :2010   Median :2011  
##  Mean   :2018   Mean   :2008   Mean   :2009   Mean   :2010   Mean   :2011  
##  3rd Qu.:2018   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010   3rd Qu.:2011  
##  Max.   :2018   Max.   :2010   Max.   :2011   Max.   :2012   Max.   :2013  
##  NA's   :14     NA's   :12     NA's   :12     NA's   :12     NA's   :12    
##      YEAR_6         YEAR_7         YEAR_8         YEAR_9              geometry 
##  Min.   :2012   Min.   :2013   Min.   :2014   Min.   :2015   MULTIPOLYGON :42  
##  1st Qu.:2012   1st Qu.:2013   1st Qu.:2014   1st Qu.:2015   epsg:4326    : 0  
##  Median :2012   Median :2013   Median :2014   Median :2015   +proj=long...: 0  
##  Mean   :2012   Mean   :2013   Mean   :2014   Mean   :2015                     
##  3rd Qu.:2012   3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015                     
##  Max.   :2014   Max.   :2015   Max.   :2016   Max.   :2017                     
##  NA's   :12     NA's   :12     NA's   :12     NA's   :12

5. Trazado

Instalamos la libreria \(RColorBrewer\) la cual usaremos para cambiar colores en los graficos.

#install.packages("RColorBrewer")

Cargamos las librerias que usaremos usando la funcion \(llibrary\):

library(RColorBrewer)
library(leaflet)

Usando la libreria \(leaflet\) graficamos la produccion de Caña de Azucar de cada municipio en un año:

bins <- c(0, 100000, 150000, 200000, 500000, 1000000, 2000000, 3000000, 4500000)
pal <- colorBin("PRGn", domain = vall_munic_stat$Produccion_12, bins = bins)

  mapa <- leaflet(data = vall_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 = "Produccion de Caña Azucarera en Valle [Ton] (2018)",
    opacity = 1
  )
  
  mapa

Produccion del Cultivo de CAFÉ

Repetimos el proceso anterior filtrando los datos por \(Cultivo\) de CAFE:

datosC2 <- datos2 %>% filter(CULTIVO == "CAFE")
(datosC3 <- datosC2 %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, Produccion, Rendimiento))
datosC3 %>% 
  gather("YEAR", "Produccion", "Rendimiento" , key = variable, value = number)
datosC4 <- datosC3 %>% 
  group_by(MPIO_CCDGO) %>% 
  mutate(Visit = 1:n()) %>% 
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number) %>% 
  unite(combi, variable, Visit) %>%
  spread(combi, number)

head(datosC4)
tail(datosC4)
vall_munic_c <- vall_munic
vall_munic_stat_c <- left_join(vall_munic_c, datosC4, by="MPIO_CCDGO")
summary(vall_munic_stat_c)
##   DPTO_CCDGO         MPIO_CCDGO         MPIO_CNMBR         MPIO_CRSLC       
##  Length:42          Length:42          Length:42          Length:42         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##    MPIO_NAREA        MPIO_NANO     DPTO_CNMBR          Shape_Leng    
##  Min.   :  41.86   Min.   :2017   Length:42          Min.   :0.4538  
##  1st Qu.: 191.01   1st Qu.:2017   Class :character   1st Qu.:0.7223  
##  Median : 266.71   Median :2017   Mode  :character   Median :0.9059  
##  Mean   : 492.04   Mean   :2017                      Mean   :1.1602  
##  3rd Qu.: 431.81   3rd Qu.:2017                      3rd Qu.:1.3207  
##  Max.   :6292.50   Max.   :2017                      Max.   :6.5953  
##                                                                      
##    Shape_Area        MUNICIPIO          Produccion_1  Produccion_10 
##  Min.   :0.003409   Length:42          Min.   :  76   Min.   : 162  
##  1st Qu.:0.015552   Class :character   1st Qu.: 405   1st Qu.: 472  
##  Median :0.021696   Mode  :character   Median : 800   Median : 745  
##  Mean   :0.039988                      Mean   :1785   Mean   :1463  
##  3rd Qu.:0.035099                      3rd Qu.:1910   3rd Qu.:1550  
##  Max.   :0.510779                      Max.   :8284   Max.   :5895  
##                                        NA's   :3      NA's   :3     
##  Produccion_11    Produccion_12     Produccion_2     Produccion_3 
##  Min.   : 142.0   Min.   : 139.0   Min.   :  85.0   Min.   :  83  
##  1st Qu.: 410.5   1st Qu.: 398.5   1st Qu.: 369.5   1st Qu.: 340  
##  Median : 780.0   Median : 748.0   Median : 785.0   Median : 872  
##  Mean   :1325.3   Mean   :1273.5   Mean   :1683.8   Mean   :1608  
##  3rd Qu.:1657.0   3rd Qu.:1734.5   3rd Qu.:1960.5   3rd Qu.:1553  
##  Max.   :6212.0   Max.   :5906.0   Max.   :8284.0   Max.   :8764  
##  NA's   :3        NA's   :3        NA's   :3        NA's   :3     
##   Produccion_4    Produccion_5     Produccion_6     Produccion_7 
##  Min.   :   90   Min.   :  86.0   Min.   : 100.0   Min.   :  75  
##  1st Qu.:  414   1st Qu.: 420.5   1st Qu.: 415.5   1st Qu.: 287  
##  Median :  861   Median : 992.0   Median : 776.0   Median : 528  
##  Mean   : 1782   Mean   :1678.9   Mean   :1569.0   Mean   :1101  
##  3rd Qu.: 1913   3rd Qu.:1908.0   3rd Qu.:1812.0   3rd Qu.:1019  
##  Max.   :10154   Max.   :8377.0   Max.   :8587.0   Max.   :5161  
##  NA's   :3       NA's   :3        NA's   :3        NA's   :3     
##   Produccion_8   Produccion_9  Rendimiento_1    Rendimiento_10 
##  Min.   : 100   Min.   : 158   Min.   :0.3000   Min.   :0.890  
##  1st Qu.: 351   1st Qu.: 461   1st Qu.:0.5850   1st Qu.:0.990  
##  Median : 670   Median : 772   Median :0.8800   Median :1.060  
##  Mean   :1277   Mean   :1476   Mean   :0.8169   Mean   :1.053  
##  3rd Qu.:1200   3rd Qu.:1544   3rd Qu.:1.0000   3rd Qu.:1.100  
##  Max.   :5757   Max.   :6108   Max.   :1.3000   Max.   :1.270  
##  NA's   :3      NA's   :3      NA's   :3        NA's   :3      
##  Rendimiento_11   Rendimiento_12   Rendimiento_2    Rendimiento_3   
##  Min.   :0.6600   Min.   :0.6200   Min.   :0.3100   Min.   :0.3200  
##  1st Qu.:0.7600   1st Qu.:0.7800   1st Qu.:0.6100   1st Qu.:0.5850  
##  Median :0.8400   Median :0.8600   Median :0.8400   Median :0.8600  
##  Mean   :0.9774   Mean   :0.9946   Mean   :0.8079   Mean   :0.8374  
##  3rd Qu.:1.1600   3rd Qu.:1.1900   3rd Qu.:1.0000   3rd Qu.:1.0000  
##  Max.   :1.8200   Max.   :1.8700   Max.   :1.4300   Max.   :1.6000  
##  NA's   :3        NA's   :3        NA's   :3        NA's   :3       
##  Rendimiento_4    Rendimiento_5    Rendimiento_6    Rendimiento_7   
##  Min.   :0.3500   Min.   :0.2000   Min.   :0.4000   Min.   :0.4000  
##  1st Qu.:0.6800   1st Qu.:0.6600   1st Qu.:0.6550   1st Qu.:0.6400  
##  Median :0.8600   Median :0.8800   Median :0.8000   Median :0.7200  
##  Mean   :0.8946   Mean   :0.8967   Mean   :0.8033   Mean   :0.7192  
##  3rd Qu.:1.0900   3rd Qu.:1.1000   3rd Qu.:1.0000   3rd Qu.:0.8000  
##  Max.   :1.6000   Max.   :1.7000   Max.   :1.2000   Max.   :1.2100  
##  NA's   :3        NA's   :3        NA's   :3        NA's   :3       
##  Rendimiento_8    Rendimiento_9       YEAR_1        YEAR_10        YEAR_11    
##  Min.   :0.4400   Min.   :0.860   Min.   :2007   Min.   :2016   Min.   :2017  
##  1st Qu.:0.7000   1st Qu.:0.960   1st Qu.:2007   1st Qu.:2016   1st Qu.:2017  
##  Median :0.7800   Median :1.020   Median :2007   Median :2016   Median :2017  
##  Mean   :0.7887   Mean   :1.019   Mean   :2007   Mean   :2016   Mean   :2017  
##  3rd Qu.:0.8800   3rd Qu.:1.060   3rd Qu.:2007   3rd Qu.:2016   3rd Qu.:2017  
##  Max.   :1.3100   Max.   :1.230   Max.   :2007   Max.   :2016   Max.   :2017  
##  NA's   :3        NA's   :3       NA's   :3      NA's   :3      NA's   :3     
##     YEAR_12         YEAR_2         YEAR_3         YEAR_4         YEAR_5    
##  Min.   :2018   Min.   :2008   Min.   :2009   Min.   :2010   Min.   :2011  
##  1st Qu.:2018   1st Qu.:2008   1st Qu.:2009   1st Qu.:2010   1st Qu.:2011  
##  Median :2018   Median :2008   Median :2009   Median :2010   Median :2011  
##  Mean   :2018   Mean   :2008   Mean   :2009   Mean   :2010   Mean   :2011  
##  3rd Qu.:2018   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010   3rd Qu.:2011  
##  Max.   :2018   Max.   :2008   Max.   :2009   Max.   :2010   Max.   :2011  
##  NA's   :3      NA's   :3      NA's   :3      NA's   :3      NA's   :3     
##      YEAR_6         YEAR_7         YEAR_8         YEAR_9              geometry 
##  Min.   :2012   Min.   :2013   Min.   :2014   Min.   :2015   MULTIPOLYGON :42  
##  1st Qu.:2012   1st Qu.:2013   1st Qu.:2014   1st Qu.:2015   epsg:4326    : 0  
##  Median :2012   Median :2013   Median :2014   Median :2015   +proj=long...: 0  
##  Mean   :2012   Mean   :2013   Mean   :2014   Mean   :2015                     
##  3rd Qu.:2012   3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015                     
##  Max.   :2012   Max.   :2013   Max.   :2014   Max.   :2015                     
##  NA's   :3      NA's   :3      NA's   :3      NA's   :3
bins <- c(0, 1000, 2000, 3000, 4000, 5000, 6000)
pal <- colorBin("YlGnBu", domain = vall_munic_stat_c$Produccion_12, bins = bins)

  mapa_CAFE <- leaflet(data = vall_munic_stat_c) %>%
  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 = "orange", weight = 2, bringToFront = TRUE)
              ) %>%
  addProviderTiles(providers$OpenStreetMap) %>%
  addLegend("bottomright", pal = pal, values = ~Produccion_12,
    title = "Producción de cafe en Valle [Ton] (2018)",
    opacity = 1
  )
  
  mapa_CAFE

Produccion del Cultivo de CAÑA PANELERA

Repetimos el proceso anterior filtrando los datos por \(Cultivo\) de CAÑA PANELERA:

datosC_P2 <- datos2 %>% filter(CULTIVO == "CAÑA PANELERA")
(datosC_P3 <- datosC_P2 %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, Produccion, Rendimiento))
datosC_P3 %>% 
  gather("YEAR", "Produccion", "Rendimiento" , key = variable, value = number)
datosC_P4 <- datosC_P3 %>% 
  group_by(MPIO_CCDGO) %>% 
  mutate(Visit = 1:n()) %>% 
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number) %>% 
  unite(combi, variable, Visit) %>%
  spread(combi, number)

head(datosC_P4)
tail(datosC_P4)
vall_muniC_P <- vall_munic
vall_munic_stat_C_P <- left_join(vall_muniC_P, datosC_P4, by="MPIO_CCDGO")
summary(vall_munic_stat_C_P)
##   DPTO_CCDGO         MPIO_CCDGO         MPIO_CNMBR         MPIO_CRSLC       
##  Length:42          Length:42          Length:42          Length:42         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##    MPIO_NAREA        MPIO_NANO     DPTO_CNMBR          Shape_Leng    
##  Min.   :  41.86   Min.   :2017   Length:42          Min.   :0.4538  
##  1st Qu.: 191.01   1st Qu.:2017   Class :character   1st Qu.:0.7223  
##  Median : 266.71   Median :2017   Mode  :character   Median :0.9059  
##  Mean   : 492.04   Mean   :2017                      Mean   :1.1602  
##  3rd Qu.: 431.81   3rd Qu.:2017                      3rd Qu.:1.3207  
##  Max.   :6292.50   Max.   :2017                      Max.   :6.5953  
##                                                                      
##    Shape_Area        MUNICIPIO          Produccion_1    Produccion_10   
##  Min.   :0.003409   Length:42          Min.   :  23.0   Min.   :   8.0  
##  1st Qu.:0.015552   Class :character   1st Qu.: 128.2   1st Qu.: 268.0  
##  Median :0.021696   Mode  :character   Median : 404.0   Median : 384.5  
##  Mean   :0.039988                      Mean   : 792.4   Mean   :1216.2  
##  3rd Qu.:0.035099                      3rd Qu.: 836.2   3rd Qu.:1417.0  
##  Max.   :0.510779                      Max.   :6869.0   Max.   :8320.0  
##                                        NA's   :4        NA's   :8       
##  Produccion_11  Produccion_12   Produccion_2     Produccion_3   
##  Min.   :  27   Min.   :  31   Min.   :  21.0   Min.   :   0.0  
##  1st Qu.: 280   1st Qu.: 280   1st Qu.: 156.8   1st Qu.: 156.8  
##  Median : 423   Median : 450   Median : 404.0   Median : 454.0  
##  Mean   :1229   Mean   :1242   Mean   : 900.6   Mean   : 963.4  
##  3rd Qu.:1474   3rd Qu.:1474   3rd Qu.:1216.2   3rd Qu.:1396.5  
##  Max.   :7395   Max.   :7523   Max.   :6869.0   Max.   :6655.0  
##  NA's   :9      NA's   :9      NA's   :4        NA's   :4       
##   Produccion_4     Produccion_5     Produccion_6     Produccion_7   
##  Min.   :  18.0   Min.   :  25.0   Min.   :   9.0   Min.   :  16.0  
##  1st Qu.: 201.5   1st Qu.: 127.8   1st Qu.: 138.5   1st Qu.: 172.5  
##  Median : 497.5   Median : 390.0   Median : 500.0   Median : 461.0  
##  Mean   : 984.0   Mean   : 972.9   Mean   : 955.6   Mean   :1231.9  
##  3rd Qu.:1166.5   3rd Qu.:1169.5   3rd Qu.:1114.0   3rd Qu.:1185.0  
##  Max.   :6515.0   Max.   :8268.0   Max.   :8268.0   Max.   :8820.0  
##  NA's   :4        NA's   :6        NA's   :7        NA's   :7       
##   Produccion_8   Produccion_9  Rendimiento_1   Rendimiento_10  
##  Min.   :  23   Min.   :  28   Min.   :2.160   Min.   : 2.500  
##  1st Qu.: 288   1st Qu.: 247   1st Qu.:4.050   1st Qu.: 5.000  
##  Median : 476   Median : 440   Median :5.125   Median : 6.050  
##  Mean   :1212   Mean   :1240   Mean   :5.032   Mean   : 6.126  
##  3rd Qu.:1181   3rd Qu.:1368   3rd Qu.:5.827   3rd Qu.: 7.500  
##  Max.   :8820   Max.   :8820   Max.   :8.110   Max.   :10.000  
##  NA's   :7      NA's   :7      NA's   :4       NA's   :8       
##  Rendimiento_11   Rendimiento_12   Rendimiento_2   Rendimiento_3  
##  Min.   : 3.000   Min.   : 3.000   Min.   :2.150   Min.   :2.270  
##  1st Qu.: 5.000   1st Qu.: 5.000   1st Qu.:3.743   1st Qu.:3.600  
##  Median : 6.500   Median : 6.500   Median :4.935   Median :5.390  
##  Mean   : 6.303   Mean   : 6.397   Mean   :5.000   Mean   :5.068  
##  3rd Qu.: 8.000   3rd Qu.: 8.000   3rd Qu.:5.827   3rd Qu.:5.850  
##  Max.   :10.000   Max.   :10.000   Max.   :8.550   Max.   :8.860  
##  NA's   :9        NA's   :9        NA's   :4       NA's   :5      
##  Rendimiento_4   Rendimiento_5   Rendimiento_6   Rendimiento_7   
##  Min.   :2.000   Min.   :2.000   Min.   :2.000   Min.   : 2.500  
##  1st Qu.:4.050   1st Qu.:3.595   1st Qu.:4.000   1st Qu.: 4.000  
##  Median :5.200   Median :5.000   Median :5.400   Median : 5.500  
##  Mean   :5.307   Mean   :5.074   Mean   :5.412   Mean   : 5.719  
##  3rd Qu.:6.247   3rd Qu.:6.175   3rd Qu.:7.000   3rd Qu.: 7.150  
##  Max.   :9.000   Max.   :8.030   Max.   :9.000   Max.   :10.000  
##  NA's   :4       NA's   :6       NA's   :7       NA's   :7       
##  Rendimiento_8   Rendimiento_9        YEAR_1        YEAR_10        YEAR_11    
##  Min.   : 2.50   Min.   : 2.500   Min.   :2007   Min.   :2016   Min.   :2017  
##  1st Qu.: 4.25   1st Qu.: 4.000   1st Qu.:2007   1st Qu.:2016   1st Qu.:2017  
##  Median : 6.00   Median : 5.500   Median :2007   Median :2016   Median :2017  
##  Mean   : 5.88   Mean   : 5.658   Mean   :2007   Mean   :2016   Mean   :2017  
##  3rd Qu.: 7.25   3rd Qu.: 7.000   3rd Qu.:2007   3rd Qu.:2016   3rd Qu.:2017  
##  Max.   :10.00   Max.   :10.000   Max.   :2010   Max.   :2018   Max.   :2017  
##  NA's   :7       NA's   :7        NA's   :4      NA's   :8      NA's   :9     
##     YEAR_12         YEAR_2         YEAR_3         YEAR_4         YEAR_5    
##  Min.   :2018   Min.   :2008   Min.   :2009   Min.   :2010   Min.   :2011  
##  1st Qu.:2018   1st Qu.:2008   1st Qu.:2009   1st Qu.:2010   1st Qu.:2011  
##  Median :2018   Median :2008   Median :2009   Median :2010   Median :2011  
##  Mean   :2018   Mean   :2008   Mean   :2009   Mean   :2010   Mean   :2011  
##  3rd Qu.:2018   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010   3rd Qu.:2011  
##  Max.   :2018   Max.   :2011   Max.   :2017   Max.   :2018   Max.   :2013  
##  NA's   :9      NA's   :4      NA's   :4      NA's   :4      NA's   :6     
##      YEAR_6         YEAR_7         YEAR_8         YEAR_9              geometry 
##  Min.   :2012   Min.   :2013   Min.   :2014   Min.   :2015   MULTIPOLYGON :42  
##  1st Qu.:2012   1st Qu.:2013   1st Qu.:2014   1st Qu.:2015   epsg:4326    : 0  
##  Median :2012   Median :2013   Median :2014   Median :2015   +proj=long...: 0  
##  Mean   :2012   Mean   :2013   Mean   :2014   Mean   :2015                     
##  3rd Qu.:2012   3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015                     
##  Max.   :2014   Max.   :2015   Max.   :2016   Max.   :2017                     
##  NA's   :7      NA's   :7      NA's   :7      NA's   :7
bins <- c(0, 500, 2000, 3000, 4000, 5000, 6000, 7500, 8000)
pal <- colorBin("Spectral", domain = vall_munic_stat_C_P$Produccion_12, bins = bins)

  mapa_C_P <- leaflet(data = vall_munic_stat_C_P) %>%
  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 = "tomato", weight = 2, bringToFront = TRUE)
              ) %>%
  addProviderTiles(providers$OpenStreetMap) %>%
  addLegend("bottomright", pal = pal, values = ~Produccion_12,
    title = "Produccion de Caña Panelera en Valle [Ton] (2018)",
    opacity = 1
  )
  
  mapa_C_P