1. Objetivo del presente R Notebook

Este cuaderno tiene como objetivo informar a través de representaciones gráficas y textuales, las estadísticas agrícolas para el departamento de Huila en Colombia. Su creación, compilado y publicado se ha realizado desde una instalación local de RStudio con el objeto de aplicar los conceptos básicos recibidos en el curso de geomática básica y así adquirir destreza en el uso de las herramientas de geomática útiles para la agronomía.

Para empezar vamos a utilizar dos comandos convenientes para el rendimiento de Rstudio y la posterior publicación de nuestro cuaderno. Los comandos son:

Este Primero remueve todo lo que tiene en memoria (ventana superior derecha) si antes que este R Notebook lleva escribiendo otros.

rm(list = ls())

El segundo permite publicar sin inconvenientes el “cuaderno” cuando finalice. En ocasiones el tamaño del R Notebook resulta un impedimento y por eso este comando es provechoso.

knitr::opts_chunk$set(echo = TRUE)

2. Examinar y sintetizar estadísticas

Necesitamos servirnos de alguna herramienta que nos permita explorar y simplicar aquellos datos no espaciales que contienen información recopilada acerca de las características del objeto de estudio, en este caso la información de la actividad agrícola en el departamento de Huila. Para esto es apropiado utilizar las funciones “dplyr” y “tidyverse” que hacen parte de las bibliotecas de R y permiten estudiar la información estadísitica.

Una mejor comprensión de los datos estadísticos se efectúa al conectar esta información no espacial con datos espaciales, también conocidos como componentes temáticos y espaciales respectivamente.Esto favorece la comprensión de un lugar de nuestro interés con mayor detalle.

Para evitar instalar paquete por paquete, utilizamos una función que nos permite listar las bibliotecas que necesitamos e instalarlas al mismo tiempo con una sola istrucción.

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)

Instaladas las librerías, como paso siguiente vamos a cargarlas:

library(here)
## here() starts at C:/Users/Sergio/Downloads/GB/Semana_5/Informe_1
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)

3. Explorando las estadísticas agrícolas en Huila

Los datos que vamos a examinar fueron descargados previamente en formato csv y contienen información acerca de la activad agrícola en el país. Como estamos interesados en el departamento del Huila, es necesario remover la información que pertenece a otros departamentos diferentes al de Huila. Realizado ese proceso de filtrado (realizado con excel) de información, con el nuevo archivo csv que contiene sólo los datos del departamento de nuestro interés lo guardamos y nos disponemos a leerlo con Rstudio.

Leamos el archivo csv con “estadisticas municipales agropecuarias” para Huila. Estas fueron descargadas en el enlace.

datos <- read_csv("C:/Users/Sergio/Downloads/GB/Semana_5/Informe_1/EVA_Huila1.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_number(),
##   ESTADO = col_character(),
##   CICLO = col_character()
## )

Es una buena práctica conocer cuáles son los atributos de los datos como parte de la exploración de los mismos.

head(datos)
tail(datos)

En el paso anterior se exploraron los atributos de las información contenida en los datos estadísticos. Pero, hasta el momento no hemos explorado con detalle cuales son las características de cada región. Por ejemplo el rendimiento, el número de hectáreas sembradas en un municipio. Para eso vamos a utilizar la biblioteca dplyr así:

Primero, obtengamos un resumen del rendimiento (es decir, el rendimiento promedio durante varios años) por grupo y municipio. En esta instrucción podemos visualizar que en un municipio específico puede tener diferentes cultivos.

datos %>%
  group_by(MUNICIPIO, GRUPO) %>%
  summarise(rend_prom = mean(Rendimiento, na.rm = TRUE)) -> rend_resumen
## `summarise()` regrouping output by 'MUNICIPIO' (override with `.groups` argument)
### Vamos a visualizar losprimeros seis registros
head(rend_resumen)

También podemos calcular el rendimiento promedio por GRUPO en los municipios de Huila:

Tenga en cuenta que anteriormente se calculó el rendimiento promedio de varios cultivos en un municipio. Ahora se está calculando el rendimiento promedio de varios cultivos a nivel del departamento.

datos %>%
  group_by(GRUPO) %>%
  summarise(rend_dep = mean(Rendimiento, na.rm = TRUE)) -> rend_Huila
## `summarise()` ungrouping output (override with `.groups` argument)
rend_Huila

En la visualizacón anterior fue sencillo advertir que los cultivos con los mayores rendimientos a nivel departamental corresponden a FIBRAS, CEREALES y TUBERCULOS Y PLATANOS.

Luego, busquemos cuáles son los municipios con mayor rendimiento para cada grupo de cultivos en 2018:

datos %>%
  filter(YEAR==2018) %>%
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_rend = max(Rendimiento, na.rm = TRUE)) %>%
    slice(which.max(max_rend)) -> rend_max_18
## `summarise()` regrouping output by 'GRUPO' (override with `.groups` argument)
rend_max_18

Si observamos detalladamente, la instrucción para calacular rendimiento máximo hizo un análisis en el que se destacó el municipio que produjo el máximo rendimiento para un determinado cultivo.

Ahora, busquemos cuáles son los municipios con mayor área cosechada para cada grupo de cultivos en 2018:

datos %>%
  filter(YEAR==2018) %>%
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_area_cosecha = max(Area_Cosecha, na.rm = TRUE)) %>%
    slice(which.max(max_area_cosecha)) -> area_cosecha_max
## `summarise()` regrouping output by 'GRUPO' (override with `.groups` argument)
area_cosecha_max

Podemos advertir en las visualizaciones que hemos visto que no siempre la región con mayor cantidad de área cosechada va a tener el mismo rendimiento por ejemplo CAMPOALEGRE que para el años 2018 ocupa la máxima área cosechada en CEREALES, FIBRAS y OTROS TRANSITORIOS pero en la visualización de máximo rendimiento solo se destacó en OTROS TRANSITORIOS.

Seleccionemos la producción de ARROZ (toneladas) en campoalegre para cada año:

datos %>%
  filter(MUNICIPIO=="CAMPOALEGRE" & SUBGRUPO=="ARROZ") %>%
  group_by(YEAR, CULTIVO) -> campoalegre_arroz

campoalegre_arroz

Hagamos una exploración gráfica básica:

# Para la siguiente instrucción vamos a necesitar la librería ggplot 2
g <- ggplot(aes(x=YEAR, y=Produccion/1000), data = campoalegre_arroz) + geom_bar(stat='identity') + labs(caption = "Basado en datos de EMA (DANE, 2018)", y='Produccion de Arroz [To n x 1000]') 
g + ggtitle("Evolucion de la producción de Arroz en Campoalegre - Huila desde 2007 a 2018")

Ahora, investiguemos qué cultivos tuvieron la mayor área cosechada en 2018:

datos %>%
  filter(YEAR==2018) %>%
  group_by(GRUPO) %>%
  summarize(sum_area_cosecha = sum(Area_Cosecha, na.rm = TRUE)) %>%
    arrange(desc(sum_area_cosecha)) -> total_area_cosecha
## `summarise()` ungrouping output (override with `.groups` argument)
total_area_cosecha

Podemos ver que OTROS PERMANENTES tuvieron la mayor proporción de área cosechada en 2018 para el departamneto de Huila. Esta información se puede encontrar en otros datos estadisticos o también lo podemos averiguar a partir de los datos que disponemos.

datos %>%
  filter(GRUPO=="OTROS PERMANENTES" & YEAR==2018) %>%
  group_by(CULTIVO) %>%
  summarize(sum_cosecha = sum(Area_Cosecha, na.rm = TRUE)) %>%
    arrange(desc(sum_cosecha)) -> total_cosecha
## `summarise()` ungrouping output (override with `.groups` argument)
total_cosecha

Si nos damos cuenta, la instrucción anterior nos permitió conocer a que hacen referencia los datos cuando están clasificados en OTROS PERMANENTES. De no ser así ¡No habríamos advertido que el cultivo de café representa un valor importante para la economía del departamento!

Ahora, veamos cuáles son los municipios con mayor área cosechada por cada cultivo permanente en 2018:

datos %>%
  filter(YEAR==2018, GRUPO=="OTROS PERMANENTES") %>%
  group_by(CULTIVO, MUNICIPIO) %>%
  summarize(max_area2 = max(Area_Cosecha, na.rm = TRUE)) %>%
    slice(which.max(max_area2)) -> area_cosecha2
## `summarise()` regrouping output by 'CULTIVO' (override with `.groups` argument)
area_cosecha2

Volvamos a los datos de cultivos permanentes. Antes de graficar, necesitaremos agregar, al objeto total_area_cosecha, un nuevo campo con abreviaturas para cada GRUPO de cultivos. De lo contrario, la trama se verá desordenada.

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

Grafiquemos:

# Tenemos que usar la librería ggplot 2
g <- ggplot(aes(x=CROP, y=sum_area_cosecha), data = total_area_cosecha) + geom_bar(stat='identity') + labs(caption = "Basado en datos de EMA (DANE, 2018)", y='Área total cosechada [Ha]')
g + ggtitle("Superficie total cosechada por grupos de cultivos en 2018 para Huila") + theme(plot.title = element_text(hjust = 0.5)) + labs(caption = "Basado en datos de EMA (DANE, 2018)")

4. Uniendo las estadísticas agrícolas a los municipios

Para los pasos siguientes necesitamos el formato shapefile que contiene el Marco Geoestadístico Departamental que podemos descargar Aquí.

Usamos la biblioteca sf para leer los datos:

hui_munic <- sf::st_read("C:/Users/Sergio/Downloads/GB/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp") 
## Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\Sergio\Downloads\GB\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
## Simple feature collection with 37 features and 9 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -76.62466 ymin: 1.552125 xmax: -74.41303 ymax: 3.843208
## geographic CRS: WGS 84

Qué es hui_munic?

hui_munic

hui_munic es una colección de funciones simples. Podriamos decir que hui_munic es una caracteristica que está conformada por otras características que le confieren atributos de tipo espacial.

Los datos utilizan el sistema de referencia de coordenadas geográficas WGS1984 (es decir, el código 4326 epsg).

Por un lado disponemos de los datos espaciales obtenidos a través del Geoportal DANE y por otro de los datos estadísticos de agricultura. Para unir ambos datos vamos a utilizar la función left_join.

Necesitamos un atributo común (o variable compartida) en el que basar la unión. El mejor atributo es una identificación. En hui_munic, el atributo MPIO_CCDGO parece estar bien (lee 41001 para Neiva). En datos, el atributo correspondiente es COD_MUN (lee 41001 para Neiva).

Verifiquemos la última declaración:

(hui_datos <- datos %>% filter (MUNICIPIO =="NEIVA") )

Es importante conocer que tipo de datos estamos manejando para evitar complicaciones a causa de no saber si un columna contiene números (numérico) o datos enteros (números enteros) o carácter (palabras).

class(hui_datos$COD_MUN)
## [1] "numeric"
datos_1 <- datos
datos_1$TEMP <-  as.character(datos_1$COD_MUN)
datos_1$MPIO_CCDGO <- as.factor(datos_1$TEMP)
datos_1

Después de realizar una conversión como la que acabamos de hacer, nunca olvidemos confirmar si la intrucción fue ejecutada exitosamente. Ahora verifiquemos si MPIO_CCDGO adoptó las características asignadas.

Tenga en cuenta que para visualizar los datos lo puede hacer de dos formas: escribiendo head(datos_2) o encerrando entre paréntesis las instrucción así:

(datos_2 <- datos_1 %>% filter(CULTIVO == "CAFE"))
class(datos_2)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"
(datos_3 <- datos_2 %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, Produccion, Rendimiento))
(datos_3 %>%
   gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number))
head(datos_3)
(datos_3 %>%
  group_by(MPIO_CCDGO) %>%
  mutate(Visit = 1:n()) %>%
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number) %>% unite(combi, variable, Visit) %>%
  spread(combi, number) -> datos_4)
tail(datos_4)

También haremos una copia de la colección de características simples (nuevamente, solo en caso de un movimiento en falso)

hui_munic_1 <- hui_munic

Aquí realizamos la unión con la función left_join:

hui_munic_stat = left_join(hui_munic_1, datos_4, by = "MPIO_CCDGO")
summary(hui_munic_stat)
##   DPTO_CCDGO         MPIO_CCDGO         MPIO_CNMBR         MPIO_CRSLC       
##  Length:37          Length:37          Length:37          Length:37         
##  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.   :  80.44   Min.   :2017   Length:37          Min.   :0.5175  
##  1st Qu.: 251.23   1st Qu.:2017   Class :character   1st Qu.:0.8666  
##  Median : 370.66   Median :2017   Mode  :character   Median :1.1565  
##  Mean   : 490.31   Mean   :2017                      Mean   :1.2396  
##  3rd Qu.: 589.69   3rd Qu.:2017                      3rd Qu.:1.4957  
##  Max.   :1584.97   Max.   :2017                      Max.   :3.0732  
##                                                                      
##    Shape_Area        MUNICIPIO          Produccion_1   Produccion_10  
##  Min.   :0.006532   Length:37          Min.   :   77   Min.   :   96  
##  1st Qu.:0.020425   Class :character   1st Qu.: 1488   1st Qu.: 1680  
##  Median :0.030087   Mode  :character   Median : 2928   Median : 3016  
##  Mean   :0.039844                      Mean   : 3687   Mean   : 4147  
##  3rd Qu.:0.047930                      3rd Qu.: 4042   3rd Qu.: 4925  
##  Max.   :0.128978                      Max.   :16099   Max.   :18440  
##                                        NA's   :2       NA's   :2      
##  Produccion_11   Produccion_12    Produccion_2    Produccion_3  
##  Min.   :   76   Min.   :   83   Min.   :   63   Min.   :   60  
##  1st Qu.: 1546   1st Qu.: 1599   1st Qu.: 1334   1st Qu.: 1150  
##  Median : 2989   Median : 2937   Median : 2949   Median : 2390  
##  Mean   : 3823   Mean   : 3890   Mean   : 3752   Mean   : 2989  
##  3rd Qu.: 4480   3rd Qu.: 4591   3rd Qu.: 4337   3rd Qu.: 3456  
##  Max.   :17216   Max.   :17236   Max.   :16323   Max.   :12728  
##  NA's   :2       NA's   :2       NA's   :2       NA's   :2      
##   Produccion_4    Produccion_5     Produccion_6    Produccion_7  
##  Min.   :   57   Min.   :  57.0   Min.   :   55   Min.   :   74  
##  1st Qu.: 1160   1st Qu.: 965.5   1st Qu.:  973   1st Qu.: 1181  
##  Median : 2479   Median :2032.0   Median : 1948   Median : 2541  
##  Mean   : 2981   Mean   :2432.9   Mean   : 2435   Mean   : 3311  
##  3rd Qu.: 3478   3rd Qu.:3030.0   3rd Qu.: 2912   3rd Qu.: 4018  
##  Max.   :13471   Max.   :8517.0   Max.   :11302   Max.   :15860  
##  NA's   :2       NA's   :2        NA's   :2       NA's   :2      
##   Produccion_8    Produccion_9   Rendimiento_1    Rendimiento_10
##  Min.   :   86   Min.   :  100   Min.   : 12.00   Min.   : 11   
##  1st Qu.: 1497   1st Qu.: 1666   1st Qu.: 14.00   1st Qu.:111   
##  Median : 2982   Median : 3018   Median : 15.00   Median :114   
##  Mean   : 3885   Mean   : 4148   Mean   : 69.69   Mean   :105   
##  3rd Qu.: 4602   3rd Qu.: 4986   3rd Qu.:145.00   3rd Qu.:116   
##  Max.   :18153   Max.   :18751   Max.   :145.00   Max.   :119   
##  NA's   :2       NA's   :2       NA's   :2        NA's   :2     
##  Rendimiento_11   Rendimiento_12  Rendimiento_2    Rendimiento_3
##  Min.   : 11.00   Min.   :103.0   Min.   : 14.00   Min.   : 12  
##  1st Qu.: 11.00   1st Qu.:109.5   1st Qu.: 15.00   1st Qu.: 12  
##  Median :101.00   Median :112.0   Median : 15.00   Median : 12  
##  Mean   : 66.14   Mean   :111.0   Mean   : 73.74   Mean   : 59  
##  3rd Qu.:111.00   3rd Qu.:114.0   3rd Qu.:145.00   3rd Qu.:122  
##  Max.   :113.00   Max.   :115.0   Max.   :156.00   Max.   :125  
##  NA's   :2        NA's   :2       NA's   :2        NA's   :2    
##  Rendimiento_4    Rendimiento_5   Rendimiento_6    Rendimiento_7 Rendimiento_8
##  Min.   :  1.00   Min.   :  8.0   Min.   :  1.00   Min.   :98    Min.   :106  
##  1st Qu.: 12.00   1st Qu.: 11.0   1st Qu.: 11.00   1st Qu.:98    1st Qu.:106  
##  Median : 12.00   Median :112.0   Median : 11.00   Median :98    Median :106  
##  Mean   : 54.49   Mean   : 75.4   Mean   : 49.29   Mean   :98    Mean   :106  
##  3rd Qu.:118.00   3rd Qu.:112.0   3rd Qu.:105.00   3rd Qu.:98    3rd Qu.:106  
##  Max.   :125.00   Max.   :125.0   Max.   :105.00   Max.   :98    Max.   :106  
##  NA's   :2        NA's   :2       NA's   :2        NA's   :2     NA's   :2    
##  Rendimiento_9        YEAR_1        YEAR_10        YEAR_11        YEAR_12    
##  Min.   : 11.00   Min.   :2007   Min.   :2016   Min.   :2017   Min.   :2018  
##  1st Qu.:105.50   1st Qu.:2007   1st Qu.:2016   1st Qu.:2017   1st Qu.:2018  
##  Median :108.00   Median :2007   Median :2016   Median :2017   Median :2018  
##  Mean   : 92.94   Mean   :2007   Mean   :2016   Mean   :2017   Mean   :2018  
##  3rd Qu.:112.00   3rd Qu.:2007   3rd Qu.:2016   3rd Qu.:2017   3rd Qu.:2018  
##  Max.   :116.00   Max.   :2007   Max.   :2016   Max.   :2017   Max.   :2018  
##  NA's   :2        NA's   :2      NA's   :2      NA's   :2      NA's   :2     
##      YEAR_2         YEAR_3         YEAR_4         YEAR_5         YEAR_6    
##  Min.   :2008   Min.   :2009   Min.   :2010   Min.   :2011   Min.   :2012  
##  1st Qu.:2008   1st Qu.:2009   1st Qu.:2010   1st Qu.:2011   1st Qu.:2012  
##  Median :2008   Median :2009   Median :2010   Median :2011   Median :2012  
##  Mean   :2008   Mean   :2009   Mean   :2010   Mean   :2011   Mean   :2012  
##  3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010   3rd Qu.:2011   3rd Qu.:2012  
##  Max.   :2008   Max.   :2009   Max.   :2010   Max.   :2011   Max.   :2012  
##  NA's   :2      NA's   :2      NA's   :2      NA's   :2      NA's   :2     
##      YEAR_7         YEAR_8         YEAR_9              geometry 
##  Min.   :2013   Min.   :2014   Min.   :2015   POLYGON      :37  
##  1st Qu.:2013   1st Qu.:2014   1st Qu.:2015   epsg:4326    : 0  
##  Median :2013   Median :2014   Median :2015   +proj=long...: 0  
##  Mean   :2013   Mean   :2014   Mean   :2015                     
##  3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015                     
##  Max.   :2013   Max.   :2014   Max.   :2015                     
##  NA's   :2      NA's   :2      NA's   :2

5. Graficado

# install.packages("RColorBrewer")
library(RColorBrewer)
library(leaflet)
library(rgl)
## 
## Attaching package: 'rgl'
## The following object is masked from 'package:rgeos':
## 
##     triangulate

Ahora, vamos a graficar los municipios del departamento de Huila para que al mismo timepo indiquen la producción de café en un determinado año.Tenga en cuenta que para llenar con valores la función inicial “bins” es necesario estar informado acerca de la producción del cultivo que quiere graficar.

Nota: ¡Cuidado con los paréntesis en códigos extensos! En el siguiente chunk un solo paréntesis demás retardó el avance del R Notebook hasta lograr encontrar el fallo que se debía precisamente a un paréntesis. Quizá para personas diestras resulte obvio o de poco interés pero para los que comenzamos resulta ventajoso recibir estos consejos.

bins <- c(0, 250, 500, 1000, 2000, 5000, 10000, 15000, 20000)
pal <- colorBin("YlGn", domain = hui_munic_stat$Produccion_12, bins = bins)

  mapa <- leaflet(data = hui_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 = 3.0,
                highlightOptions = highlightOptions(color = "Yellow", weight = 2, bringToFront = TRUE)) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addLegend("bottomright", pal = pal, values = ~Produccion_12,
  title = "Producción de Café en Huila [Ton] (2018)",
  opacity = 1)
mapa
sessionInfo()
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Spanish_Colombia.1252  LC_CTYPE=Spanish_Colombia.1252   
## [3] LC_MONETARY=Spanish_Colombia.1252 LC_NUMERIC=C                     
## [5] LC_TIME=Spanish_Colombia.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] rgl_0.100.54        leaflet_2.0.3       RColorBrewer_1.1-2 
##  [4] cowplot_1.1.0       ggrepel_0.8.2       GSODR_2.1.2        
##  [7] rnaturalearth_0.1.0 viridis_0.5.1       viridisLite_0.3.0  
## [10] sf_0.9-5            raster_3.3-13       maptools_1.0-2     
## [13] rgeos_0.5-5         sp_1.4-2            forcats_0.5.0      
## [16] stringr_1.4.0       dplyr_1.0.2         purrr_0.3.4        
## [19] readr_1.3.1         tidyr_1.1.2         tibble_3.0.3       
## [22] ggplot2_3.3.2       tidyverse_1.3.0     here_0.1           
## 
## loaded via a namespace (and not attached):
##  [1] fs_1.5.0                lubridate_1.7.9         webshot_0.5.2          
##  [4] httr_1.4.2              rprojroot_1.3-2         tools_4.0.2            
##  [7] backports_1.1.9         R6_2.4.1                KernSmooth_2.23-17     
## [10] DBI_1.1.0               colorspace_1.4-1        manipulateWidget_0.10.1
## [13] withr_2.2.0             tidyselect_1.1.0        gridExtra_2.3          
## [16] compiler_4.0.2          cli_2.0.2               rvest_0.3.6            
## [19] xml2_1.3.2              labeling_0.3            scales_1.1.1           
## [22] classInt_0.4-3          digest_0.6.25           foreign_0.8-80         
## [25] rmarkdown_2.3           pkgconfig_2.0.3         htmltools_0.5.0        
## [28] fastmap_1.0.1           dbplyr_1.4.4            htmlwidgets_1.5.1      
## [31] rlang_0.4.7             readxl_1.3.1            rstudioapi_0.11        
## [34] shiny_1.5.0             farver_2.0.3            generics_0.0.2         
## [37] jsonlite_1.7.1          crosstalk_1.1.0.1       magrittr_1.5           
## [40] Rcpp_1.0.5              munsell_0.5.0           fansi_0.4.1            
## [43] lifecycle_0.2.0         stringi_1.5.3           yaml_2.2.1             
## [46] grid_4.0.2              blob_1.2.1              promises_1.1.1         
## [49] crayon_1.3.4            miniUI_0.1.1.1          lattice_0.20-41        
## [52] haven_2.3.1             hms_0.5.3               knitr_1.29             
## [55] pillar_1.4.6            codetools_0.2-16        reprex_0.3.0           
## [58] glue_1.4.2              evaluate_0.14           leaflet.providers_1.9.0
## [61] data.table_1.13.0       modelr_0.1.8            vctrs_0.3.4            
## [64] httpuv_1.5.4            cellranger_1.1.0        gtable_0.3.0           
## [67] assertthat_0.2.1        xfun_0.16               mime_0.9               
## [70] xtable_1.8-4            broom_0.7.0             e1071_1.7-3            
## [73] later_1.1.0.1           class_7.3-17            units_0.6-7            
## [76] ellipsis_0.3.1

6. Otro mapa de producción

Lo anterior se hizo para la Producción de Café. Pero, también podemos registrar gráficamente cuántas fueron las hectáreas sembradas de cultivo de arroz y en qué partes del departemento están concentradas las zonas del cultivo que ocupa el segundo lugar después del café en el departamneto de Huila.

(datos_arroz <- datos_1 %>% filter(CULTIVO == "ARROZ"))
class(datos_arroz)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"
(datos_arroz_1 <- datos_arroz %>% dplyr::select(MUNICIPIO, MPIO_CCDGO, YEAR, Produccion, Rendimiento))
datos_arroz_1 %>%
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number)
head(datos_arroz_1)
datos_arroz_1 %>%
  group_by(MPIO_CCDGO) %>%
  mutate(Visit = 1:n()) %>%
  gather("YEAR", "Produccion", "Rendimiento", key = variable, value = number) %>%
  unite(combi, variable, Visit) %>%
  spread(combi, number) -> datos_arroz_2
head(datos_arroz_2)
tail(datos_arroz_2)
hui_munic_arroz <- hui_munic
hui_munic_arroz_stat = left_join(hui_munic_arroz, datos_arroz_2, by = "MPIO_CCDGO")
summary(hui_munic_arroz_stat)
##   DPTO_CCDGO         MPIO_CCDGO         MPIO_CNMBR         MPIO_CRSLC       
##  Length:37          Length:37          Length:37          Length:37         
##  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.   :  80.44   Min.   :2017   Length:37          Min.   :0.5175  
##  1st Qu.: 251.23   1st Qu.:2017   Class :character   1st Qu.:0.8666  
##  Median : 370.66   Median :2017   Mode  :character   Median :1.1565  
##  Mean   : 490.31   Mean   :2017                      Mean   :1.2396  
##  3rd Qu.: 589.69   3rd Qu.:2017                      3rd Qu.:1.4957  
##  Max.   :1584.97   Max.   :2017                      Max.   :3.0732  
##                                                                      
##    Shape_Area        MUNICIPIO          Produccion_1   Produccion_10    
##  Min.   :0.006532   Length:37          Min.   :    7   Min.   :   28.0  
##  1st Qu.:0.020425   Class :character   1st Qu.:  560   1st Qu.:  512.5  
##  Median :0.030087   Mode  :character   Median : 2622   Median : 2700.0  
##  Mean   :0.039844                      Mean   : 5066   Mean   : 5327.1  
##  3rd Qu.:0.047930                      3rd Qu.: 5925   3rd Qu.: 4908.0  
##  Max.   :0.128978                      Max.   :25200   Max.   :33250.0  
##                                        NA's   :16      NA's   :18       
##  Produccion_11   Produccion_12   Produccion_13     Produccion_14  
##  Min.   :   82   Min.   :   56   Min.   :   80.0   Min.   :   63  
##  1st Qu.:  875   1st Qu.:  867   1st Qu.:  738.2   1st Qu.:  970  
##  Median : 3395   Median : 3318   Median : 2541.0   Median : 2708  
##  Mean   : 6605   Mean   : 6678   Mean   : 5620.2   Mean   : 5465  
##  3rd Qu.: 6772   3rd Qu.: 5633   3rd Qu.: 4608.2   3rd Qu.: 4300  
##  Max.   :37080   Max.   :39528   Max.   :36245.0   Max.   :32936  
##  NA's   :19      NA's   :19      NA's   :19        NA's   :19     
##  Produccion_15     Produccion_16     Produccion_17   Produccion_18    
##  Min.   :   82.0   Min.   :   61.0   Min.   :   84   Min.   :   61.0  
##  1st Qu.:  978.2   1st Qu.:  965.2   1st Qu.:  941   1st Qu.:  993.2  
##  Median : 2352.0   Median : 2677.5   Median : 2262   Median : 2670.0  
##  Mean   : 5659.3   Mean   : 5595.1   Mean   : 5466   Mean   : 5706.2  
##  3rd Qu.: 4049.0   3rd Qu.: 4181.0   3rd Qu.: 3923   3rd Qu.: 4372.5  
##  Max.   :35588.0   Max.   :34339.0   Max.   :34237   Max.   :34928.0  
##  NA's   :19        NA's   :19        NA's   :19      NA's   :19       
##  Produccion_19      Produccion_2     Produccion_20   Produccion_21  
##  Min.   :  135.0   Min.   :   59.0   Min.   :  146   Min.   :  137  
##  1st Qu.:  944.8   1st Qu.:  682.5   1st Qu.:  594   1st Qu.:  860  
##  Median : 2271.5   Median : 2309.5   Median : 2784   Median : 2240  
##  Mean   : 5888.1   Mean   : 5506.6   Mean   : 8428   Mean   : 8182  
##  3rd Qu.: 5520.8   3rd Qu.: 5931.2   3rd Qu.: 9230   3rd Qu.: 9835  
##  Max.   :34375.0   Max.   :27650.0   Max.   :54463   Max.   :53345  
##  NA's   :19        NA's   :17        NA's   :20      NA's   :20     
##  Produccion_22   Produccion_23     Produccion_24      Produccion_3    
##  Min.   :  127   Min.   :  228.0   Min.   :   66.0   Min.   :   65.0  
##  1st Qu.:  813   1st Qu.:  818.5   1st Qu.:  881.2   1st Qu.:  682.5  
##  Median : 3079   Median : 2564.5   Median : 2388.0   Median : 2985.0  
##  Mean   : 7278   Mean   : 7370.6   Mean   : 7740.1   Mean   : 5755.1  
##  3rd Qu.: 6847   3rd Qu.: 7415.8   3rd Qu.: 6432.8   3rd Qu.: 6162.5  
##  Max.   :45179   Max.   :41559.0   Max.   :45532.0   Max.   :28835.0  
##  NA's   :20      NA's   :21        NA's   :23        NA's   :17       
##   Produccion_4    Produccion_5    Produccion_6    Produccion_7  
##  Min.   :   33   Min.   :   33   Min.   :   35   Min.   :  120  
##  1st Qu.:  944   1st Qu.: 1102   1st Qu.:  725   1st Qu.: 1080  
##  Median : 3000   Median : 3150   Median : 3285   Median : 3375  
##  Mean   : 6310   Mean   : 6884   Mean   : 6357   Mean   : 6563  
##  3rd Qu.: 6710   3rd Qu.: 6702   3rd Qu.: 6314   3rd Qu.: 6624  
##  Max.   :33580   Max.   :35770   Max.   :35890   Max.   :36720  
##  NA's   :18      NA's   :18      NA's   :18      NA's   :18     
##   Produccion_8      Produccion_9     Rendimiento_1    Rendimiento_10  
##  Min.   :   70.0   Min.   :   70.0   Min.   :  5.00   Min.   :  6.00  
##  1st Qu.:  584.5   1st Qu.:  612.5   1st Qu.:  7.00   1st Qu.: 34.50  
##  Median : 2380.0   Median : 2278.0   Median : 65.00   Median : 65.00  
##  Mean   : 4149.9   Mean   : 5017.6   Mean   : 76.43   Mean   : 85.58  
##  3rd Qu.: 4830.0   3rd Qu.: 5215.0   3rd Qu.: 75.00   3rd Qu.: 69.00  
##  Max.   :21120.0   Max.   :28520.0   Max.   :708.00   Max.   :716.00  
##  NA's   :18        NA's   :18        NA's   :16       NA's   :18      
##  Rendimiento_11  Rendimiento_12  Rendimiento_13  Rendimiento_14 
##  Min.   : 7.00   Min.   : 7.00   Min.   :  6.0   Min.   :  7.0  
##  1st Qu.: 7.00   1st Qu.:63.50   1st Qu.: 63.0   1st Qu.:614.2  
##  Median :35.00   Median :68.00   Median :585.0   Median :664.0  
##  Mean   :38.06   Mean   :54.94   Mean   :434.6   Mean   :522.1  
##  3rd Qu.:68.00   3rd Qu.:70.50   3rd Qu.:648.0   3rd Qu.:669.0  
##  Max.   :72.00   Max.   :72.00   Max.   :675.0   Max.   :688.0  
##  NA's   :19      NA's   :19      NA's   :19      NA's   :19     
##  Rendimiento_15  Rendimiento_16  Rendimiento_17  Rendimiento_18 
##  Min.   :  7.0   Min.   :635.0   Min.   :678.0   Min.   :594.0  
##  1st Qu.:  7.0   1st Qu.:675.0   1st Qu.:678.0   1st Qu.:689.0  
##  Median : 35.5   Median :686.0   Median :678.0   Median :689.0  
##  Mean   :140.9   Mean   :680.7   Mean   :681.3   Mean   :686.7  
##  3rd Qu.: 71.0   3rd Qu.:693.0   3rd Qu.:678.0   3rd Qu.:689.0  
##  Max.   :693.0   Max.   :712.0   Max.   :716.0   Max.   :716.0  
##  NA's   :19      NA's   :19      NA's   :19      NA's   :19     
##  Rendimiento_19  Rendimiento_2    Rendimiento_20  Rendimiento_21 
##  Min.   : 81.0   Min.   :  5.00   Min.   : 66.0   Min.   : 64.0  
##  1st Qu.:716.0   1st Qu.:  7.00   1st Qu.:581.0   1st Qu.:623.0  
##  Median :716.0   Median : 27.50   Median :723.0   Median :672.0  
##  Mean   :675.2   Mean   : 67.35   Mean   :571.5   Mean   :602.4  
##  3rd Qu.:716.0   3rd Qu.: 69.00   3rd Qu.:745.0   3rd Qu.:695.0  
##  Max.   :794.0   Max.   :674.00   Max.   :801.0   Max.   :824.0  
##  NA's   :19      NA's   :17       NA's   :20      NA's   :20     
##  Rendimiento_22  Rendimiento_23  Rendimiento_24   Rendimiento_3  
##  Min.   : 69.0   Min.   :  7.0   Min.   :  7.00   Min.   :  7.0  
##  1st Qu.:697.0   1st Qu.:677.0   1st Qu.:  7.00   1st Qu.:  7.0  
##  Median :718.0   Median :697.5   Median : 67.00   Median : 70.0  
##  Mean   :645.7   Mean   :613.4   Mean   : 92.21   Mean   :140.8  
##  3rd Qu.:739.0   3rd Qu.:703.0   3rd Qu.: 68.75   3rd Qu.: 75.0  
##  Max.   :792.0   Max.   :763.0   Max.   :708.00   Max.   :689.0  
##  NA's   :20      NA's   :21      NA's   :23       NA's   :17     
##  Rendimiento_4   Rendimiento_5    Rendimiento_6   Rendimiento_7  
##  Min.   : 63.0   Min.   :  7.00   Min.   : 7.00   Min.   :  7.0  
##  1st Qu.: 72.0   1st Qu.:  8.00   1st Qu.:73.00   1st Qu.: 72.0  
##  Median : 73.0   Median : 73.00   Median :73.00   Median : 73.0  
##  Mean   :105.8   Mean   : 83.63   Mean   :66.37   Mean   :203.2  
##  3rd Qu.: 74.0   3rd Qu.: 75.00   3rd Qu.:74.00   3rd Qu.: 74.5  
##  Max.   :709.0   Max.   :667.00   Max.   :75.00   Max.   :735.0  
##  NA's   :18      NA's   :18       NA's   :18      NA's   :18     
##  Rendimiento_8   Rendimiento_9       YEAR_1        YEAR_10        YEAR_11    
##  Min.   :  6.0   Min.   :  6.0   Min.   :2006   Min.   :2011   Min.   :2011  
##  1st Qu.:  7.0   1st Qu.:  7.0   1st Qu.:2006   1st Qu.:2011   1st Qu.:2011  
##  Median : 65.0   Median : 59.0   Median :2006   Median :2011   Median :2011  
##  Mean   :165.1   Mean   :103.3   Mean   :2007   Mean   :2011   Mean   :2011  
##  3rd Qu.: 71.5   3rd Qu.: 67.5   3rd Qu.:2006   3rd Qu.:2011   3rd Qu.:2011  
##  Max.   :687.0   Max.   :689.0   Max.   :2016   Max.   :2015   Max.   :2012  
##  NA's   :18      NA's   :18      NA's   :16     NA's   :18     NA's   :19    
##     YEAR_12        YEAR_13        YEAR_14        YEAR_15        YEAR_16    
##  Min.   :2012   Min.   :2012   Min.   :2013   Min.   :2013   Min.   :2014  
##  1st Qu.:2012   1st Qu.:2012   1st Qu.:2013   1st Qu.:2013   1st Qu.:2014  
##  Median :2012   Median :2012   Median :2013   Median :2013   Median :2014  
##  Mean   :2012   Mean   :2012   Mean   :2013   Mean   :2013   Mean   :2014  
##  3rd Qu.:2012   3rd Qu.:2012   3rd Qu.:2013   3rd Qu.:2013   3rd Qu.:2014  
##  Max.   :2013   Max.   :2013   Max.   :2014   Max.   :2014   Max.   :2015  
##  NA's   :19     NA's   :19     NA's   :19     NA's   :19     NA's   :19    
##     YEAR_17        YEAR_18        YEAR_19         YEAR_2        YEAR_20    
##  Min.   :2014   Min.   :2015   Min.   :2015   Min.   :2007   Min.   :2016  
##  1st Qu.:2014   1st Qu.:2015   1st Qu.:2015   1st Qu.:2007   1st Qu.:2016  
##  Median :2014   Median :2015   Median :2015   Median :2007   Median :2016  
##  Mean   :2014   Mean   :2015   Mean   :2015   Mean   :2008   Mean   :2016  
##  3rd Qu.:2014   3rd Qu.:2015   3rd Qu.:2015   3rd Qu.:2007   3rd Qu.:2016  
##  Max.   :2015   Max.   :2016   Max.   :2016   Max.   :2014   Max.   :2017  
##  NA's   :19     NA's   :19     NA's   :19     NA's   :17     NA's   :20    
##     YEAR_21        YEAR_22        YEAR_23        YEAR_24         YEAR_3    
##  Min.   :2016   Min.   :2017   Min.   :2017   Min.   :2018   Min.   :2007  
##  1st Qu.:2016   1st Qu.:2017   1st Qu.:2017   1st Qu.:2018   1st Qu.:2007  
##  Median :2016   Median :2017   Median :2017   Median :2018   Median :2007  
##  Mean   :2016   Mean   :2017   Mean   :2017   Mean   :2018   Mean   :2008  
##  3rd Qu.:2016   3rd Qu.:2017   3rd Qu.:2017   3rd Qu.:2018   3rd Qu.:2007  
##  Max.   :2017   Max.   :2018   Max.   :2018   Max.   :2018   Max.   :2015  
##  NA's   :20     NA's   :20     NA's   :21     NA's   :23     NA's   :17    
##      YEAR_4         YEAR_5         YEAR_6         YEAR_7         YEAR_8    
##  Min.   :2008   Min.   :2008   Min.   :2009   Min.   :2009   Min.   :2010  
##  1st Qu.:2008   1st Qu.:2008   1st Qu.:2009   1st Qu.:2009   1st Qu.:2010  
##  Median :2008   Median :2008   Median :2009   Median :2009   Median :2010  
##  Mean   :2008   Mean   :2008   Mean   :2009   Mean   :2009   Mean   :2010  
##  3rd Qu.:2008   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2009   3rd Qu.:2010  
##  Max.   :2012   Max.   :2013   Max.   :2013   Max.   :2014   Max.   :2014  
##  NA's   :18     NA's   :18     NA's   :18     NA's   :18     NA's   :18    
##      YEAR_9              geometry 
##  Min.   :2010   POLYGON      :37  
##  1st Qu.:2010   epsg:4326    : 0  
##  Median :2010   +proj=long...: 0  
##  Mean   :2010                     
##  3rd Qu.:2010                     
##  Max.   :2015                     
##  NA's   :18

Graficamos:

bins <- c(0, 250, 500, 1000, 2000, 5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000)
pal <- colorBin("YlGnBu", domain = hui_munic_arroz_stat$Produccion_24, bins = bins)

  mapa <- leaflet(data = hui_munic_arroz_stat) %>%
  addTiles() %>%
  addPolygons(label = ~Produccion_24,
              popup = ~MPIO_CNMBR,
              fillColor = ~pal(Produccion_24),
              color = "#444444",
              weight = 1,
              smoothFactor = 0.5,
              opacity = 9.0,
              fillOpacity = 3.0,
              highlightOptions = highlightOptions(color = "Blue", weight = 2, bringToFront = TRUE)
              ) %>%
  addProviderTiles(providers$OpenStreetMap) %>%
  addLegend("bottomright", pal = pal, values = ~Produccion_24,
    title = "Producción de Arroz en Huila [Ton] (2018)",
    opacity = 1
  )
## Warning in RColorBrewer::brewer.pal(max(3, n), palette): n too large, allowed maximum for palette YlGnBu is 9
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(max(3, n), palette): n too large, allowed maximum for palette YlGnBu is 9
## Returning the palette you asked for with that many colors
mapa
sessionInfo()
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Spanish_Colombia.1252  LC_CTYPE=Spanish_Colombia.1252   
## [3] LC_MONETARY=Spanish_Colombia.1252 LC_NUMERIC=C                     
## [5] LC_TIME=Spanish_Colombia.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] rgl_0.100.54        leaflet_2.0.3       RColorBrewer_1.1-2 
##  [4] cowplot_1.1.0       ggrepel_0.8.2       GSODR_2.1.2        
##  [7] rnaturalearth_0.1.0 viridis_0.5.1       viridisLite_0.3.0  
## [10] sf_0.9-5            raster_3.3-13       maptools_1.0-2     
## [13] rgeos_0.5-5         sp_1.4-2            forcats_0.5.0      
## [16] stringr_1.4.0       dplyr_1.0.2         purrr_0.3.4        
## [19] readr_1.3.1         tidyr_1.1.2         tibble_3.0.3       
## [22] ggplot2_3.3.2       tidyverse_1.3.0     here_0.1           
## 
## loaded via a namespace (and not attached):
##  [1] fs_1.5.0                lubridate_1.7.9         webshot_0.5.2          
##  [4] httr_1.4.2              rprojroot_1.3-2         tools_4.0.2            
##  [7] backports_1.1.9         R6_2.4.1                KernSmooth_2.23-17     
## [10] DBI_1.1.0               colorspace_1.4-1        manipulateWidget_0.10.1
## [13] withr_2.2.0             tidyselect_1.1.0        gridExtra_2.3          
## [16] compiler_4.0.2          cli_2.0.2               rvest_0.3.6            
## [19] xml2_1.3.2              labeling_0.3            scales_1.1.1           
## [22] classInt_0.4-3          digest_0.6.25           foreign_0.8-80         
## [25] rmarkdown_2.3           pkgconfig_2.0.3         htmltools_0.5.0        
## [28] fastmap_1.0.1           dbplyr_1.4.4            htmlwidgets_1.5.1      
## [31] rlang_0.4.7             readxl_1.3.1            rstudioapi_0.11        
## [34] shiny_1.5.0             farver_2.0.3            generics_0.0.2         
## [37] jsonlite_1.7.1          crosstalk_1.1.0.1       magrittr_1.5           
## [40] Rcpp_1.0.5              munsell_0.5.0           fansi_0.4.1            
## [43] lifecycle_0.2.0         stringi_1.5.3           yaml_2.2.1             
## [46] grid_4.0.2              blob_1.2.1              promises_1.1.1         
## [49] crayon_1.3.4            miniUI_0.1.1.1          lattice_0.20-41        
## [52] haven_2.3.1             hms_0.5.3               knitr_1.29             
## [55] pillar_1.4.6            codetools_0.2-16        reprex_0.3.0           
## [58] glue_1.4.2              evaluate_0.14           leaflet.providers_1.9.0
## [61] data.table_1.13.0       modelr_0.1.8            vctrs_0.3.4            
## [64] httpuv_1.5.4            cellranger_1.1.0        gtable_0.3.0           
## [67] assertthat_0.2.1        xfun_0.16               mime_0.9               
## [70] xtable_1.8-4            broom_0.7.0             e1071_1.7-3            
## [73] later_1.1.0.1           class_7.3-17            units_0.6-7            
## [76] ellipsis_0.3.1