1. Contenido

This is an R Markdown Notebook, acerca de estadísticas agrícolas correspondientes al departamento de Nariño, Colombia. Ha sido creado, compilado y publicado desde RStudio. Desarrollado por una estudiante de la Universidad Nacional de Colombia, vinculada al curso de Geomática Básica en la Facultad de Ciencias Agrarias.

2. Funcionalidades SIG

La exploración de estadísticas no espaciales es esencial para comprender lo que está sucediendo en los territorios. Varias bibliotecas 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 bibliotecas que necesitamos. Tenga en cuenta que, 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, cargamos las librerías

library(here)
## Warning: package 'here' was built under R version 3.6.3
## here() starts at D:/Mis documentos/RStudio_Works
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.6.3
## -- Attaching packages ----------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0     v purrr   0.3.3
## v tibble  2.1.3     v dplyr   0.8.4
## v tidyr   1.0.2     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## Warning: package 'ggplot2' was built under R version 3.6.3
## Warning: package 'tidyr' was built under R version 3.6.3
## Warning: package 'purrr' was built under R version 3.6.3
## Warning: package 'dplyr' was built under R version 3.6.3
## -- Conflicts -------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(rgeos)
## Loading required package: sp
## Warning: package 'sp' was built under R version 3.6.3
## rgeos version: 0.5-1, (SVN revision 614)
##  GEOS runtime version: 3.6.1-CAPI-1.10.1 
##  Linking to sp version: 1.3-1 
##  Polygon checking: TRUE
library(maptools)
## Checking rgeos availability: TRUE
library(raster)
## Warning: package 'raster' was built under R version 3.6.3
## 
## Attaching package: 'raster'
## The following object is masked from 'package:dplyr':
## 
##     select
## The following object is masked from 'package:tidyr':
## 
##     extract
library(sf)
## Warning: package 'sf' was built under R version 3.6.3
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(viridis)
## Warning: package 'viridis' was built under R version 3.6.3
## Loading required package: viridisLite
## Warning: package 'viridisLite' was built under R version 3.6.3
library(rnaturalearth)
## Warning: package 'rnaturalearth' was built under R version 3.6.3
library(GSODR)
## Warning: package 'GSODR' was built under R version 3.6.3
library(ggrepel)
## Warning: package 'ggrepel' was built under R version 3.6.3
library(cowplot)
## Warning: package 'cowplot' was built under R version 3.6.3
## 
## ********************************************************
## 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())
## ********************************************************

Exploración de Estadísticas Agrícolas en Nariño

Teniendo descargada la base de datos estadísticos, en formato csv y luego de realizar la limpieza de los datos requeridos al departamento a trabajar en este caso Nariño. Leemos el archivo con la base de datos estadísticos:

datos<- read_csv("D:/Mis documentos/RStudio_Works/Base_Definitiva.csv")
## Parsed with column specification:
## cols(
##   COD = col_double(),
##   DEPARTAMENTO = col_character(),
##   COD_MUN = col_double(),
##   MUNICIPIO = col_character(),
##   GRUPO = col_character(),
##   SUBGRUPO = col_character(),
##   CULTIVO = col_character(),
##   ANO = col_double(),
##   AREA_Siembra = col_double(),
##   AREA_Cosecha = col_double(),
##   PRODUCCION = col_double(),
##   RENDIMIENTO = col_double(),
##   ESTADO = col_character(),
##   CICLO = col_character()
## )

Revisamos cuales son los atributos de los datos:

head(datos)
tail(datos)

Tenga en cuenta que cada municipio tiene estadísticas sobre el área sembrada, área cosechada, y rendimiento para diferentes cultivos en diferentes años.

Los atributos SUBGRUPO y CULTIVO parecen referirse a la misma cosa (es decir, un cultivo). Los cultivos se clasifican además en un GRUPO dado.

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

Utilizaremos la biblioteca dplyr para explorar el contenido del objeto de datos.

Primero, obtenemos un resumen del rendimiento (es decir, el rendimiento promedio durante varios años) por grupo y municipio:

  datos %>%
  group_by(MUNICIPIO, GRUPO) %>%
  summarise(rend_prom = mean(RENDIMIENTO, na.rm = TRUE)) -> rend_resumen
### Let's visualize only the first six records
head(rend_resumen)

Ahora vamos a calcular cual es el rendimiento promedio por GRUPO de los municipios de Nariño:

datos %>%
  group_by(GRUPO) %>%
  summarise(rend_dep = mean(RENDIMIENTO, na.rm = TRUE)) -> rend_narino

rend_narino

Notese que los rendimientos más altos corresponden a los cultivos de HORTALIZAS en su gran parte, seguido de la producción de TUBÉRCULOS Y PLÁTANOS Y FRUTALES.

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

datos %>% 
  filter(ANO==2018) %>% 
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_rend = max(RENDIMIENTO, na.rm = TRUE)) %>%
    slice(which.max(max_rend)) -> rend_max_18

rend_max_18

Por otro lado, el municipio con el máximo rendimiento de HORTALIZAS es CHACHAGUI, seguido del máximo rendimiento de TUBERCULOS Y PLÁTANOS en SANDONA.

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

datos %>% 
  filter(ANO==2018) %>% 
  group_by(GRUPO, MUNICIPIO) %>%
  summarize(max_area_cosecha = max(AREA_Cosecha, na.rm = TRUE)) %>%
    slice(which.max(max_area_cosecha)) -> area_cosecha_max

area_cosecha_max

Respecto a los municipios con la máxima área cosechada en el año 2018, cabe resaltar a TUMACO con la cosecha de OLEAGINOSAS y OTRAS PERMANENTES con una área de cosecha de 17600 y 14000 ha respectivamente. En Tumaco se destaca la producción de Palma Africana entre los cultivos de aleaginosas.

Para hacer una consulta más específica, seleccionamos la producción de PALMA DE ACEITE en Tumaco para cada año:

datos %>% 
  filter(MUNICIPIO=="TUMACO" & SUBGRUPO=="PALMA DE ACEITE") %>% 
  group_by(ANO, CULTIVO) ->  tumaco_palma

tumaco_palma

Al clasidicar la información por años, podemos observar que el año 2007 presenta la mayor área de siembra y que esta empezó a disminuir drássticamente hasta el 2012 y apartir del 2013 volvió a aumentar el área de siembra. Sin embargo cabe resaltar que en los últimos años 2015-2018, se han presentado los menores rendimientos en ton/ha.

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

g <- ggplot(aes(x=ANO, y=PRODUCCION/1000), data = tumaco_palma) + geom_bar(stat='identity') + labs(y='Producción de Palma de Aceite  [Ton x 1000]')
g + ggtitle("Evolución de la producción de Palma de Aceite en Tumaco de 2007 a 2018") + labs(caption= "Basado en EMA data (DANE, 2018)")

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

datos %>% 
  filter(ANO==2018) %>% 
  group_by(GRUPO) %>%
  summarize(sum_area_cosecha = sum(AREA_Cosecha, na.rm = TRUE)) %>%
     arrange(desc(sum_area_cosecha)) -> total_area_cosecha

total_area_cosecha

Con lo anterior se pude observar que el cultivo de Otros permanentes ocupan el mayor área cosechada en Nariño para el 2018. ¿Qué cultivos pertenecen a este GRUPO? Puede buscar más información en DANE, la agencia gubernamental a cargo de las estadísticas nacionales en Colombia.

También podemos buscar esta información en los datos mismos:

datos %>%
  filter(GRUPO=="OTROS PERMANENTES" & ANO==2018) %>%
  group_by(CULTIVO) %>%
  summarize(sum_cosecha = sum(AREA_Cosecha, na.rm = TRUE)) %>%
     arrange(desc(sum_cosecha)) -> total_cosecha


total_cosecha

Notamos que el CAFÉ es fundamental para la producción agrícola en Nariño.

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

datos %>% 
  filter(ANO==2018 & GRUPO=="OTROS PERMANENTES") %>% 
  group_by(CULTIVO, MUNICIPIO) %>%
  summarize(max_area2 = max(AREA_Cosecha, na.rm = TRUE)) %>%
    slice(which.max(max_area2)) -> area_cosecha2

area_cosecha2

Volvamos a los datos de Cultivos Permanentes. Antes de trazar, 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)

Ahora, podemos gráficar los datos:

g <- ggplot(aes(x=CROP, y=sum_area_cosecha), data = total_area_cosecha) + geom_bar(stat='identity') + labs(y='Total Área Cosechada [Ha]')
g+ ggtitle("Total Área Cosechada por grupos de cultivos en 2018 para Nariño") + theme(plot.title = element_text(hjust = 0.5)) +
   labs(caption= "Basado en EMA data (DANE, 2018)")

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

Usamos los datos administrativos de Nariño.

Comencemos leyendo los datos usando la biblioteca sf:

nari_munic <- sf::st_read("D:/Mis documentos/RStudio_Works/52_NARIÑO/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
## Reading layer `MGN_MPIO_POLITICO' from data source `D:\Mis documentos\RStudio_Works\52_NARIÑO\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
## Simple feature collection with 64 features and 9 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -79.01021 ymin: 0.3613481 xmax: -76.83368 ymax: 2.683898
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs

¿Qué es nari_munic?

nari_munic

Tenga en cuenta que nari_munic es una colección de características simple. Tenga en cuenta también que los datos utilizan el sistema de referencia de coordenadas geográficas WGS1984 (es decir, código 4326 epsg). Podemos usar la función left_join para unir los municipios y las estadísticas agrícolas seleccionadas.

Necesitamos un atributo común (o variable compartida) para hacer la unión. El mejor atributo es una identificación. En nari_munic, el atributo MPIO_CCDGO parece estar bien (se lee 52683 para Sandona). En datos, el atributo correspondiente es COD_MUN (lee 52683 para Sandona). Verifiquemos lo anterior:

datos %>% filter (MUNICIPIO =="SANDONA") ->  sandona_datos
sandona_datos
class(sandona_datos$COD_MUN)
## [1] "numeric"

Para poder hacer la unión, necesitamos cambiar tanto el tipo de datos como el contenido del código que identifica a cada municipio:

datos2 <- datos
datos2$TEMP <-  as.character(datos2$COD_MUN)
datos2$MPIO_CCDGO <- as.factor(paste( datos2$TEMP, sep=""))
head(datos2)

Ahora filtremos un solo año y seleccionemos solo dos atributos relevantes:

datos2 %>% filter(CULTIVO == "CAFE")  -> datos3
head(datos3)
class(datos3)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"
datos4 <- datos3 %>% dplyr::select(MUNICIPIO,MPIO_CCDGO, ANO, PRODUCCION, RENDIMIENTO) 
datos4
datos4 %>% 
  gather("ANO", "PRODUCCION", "RENDIMIENTO" , key = variable, value = number)
head(datos4)

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("ANO", "PRODUCCION", "RENDIMIENTO", key = variable, value = number) %>% 
  unite(combi, variable, Visit) %>%
  spread(combi, number) -> datos5
head(datos5)
tail(datos5)

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

nari_munic2 <- nari_munic

Ahora, hacemos la unión:

nari_munic_stat = left_join(nari_munic2, datos5, by="MPIO_CCDGO")
summary(nari_munic_stat)
##  DPTO_CCDGO   MPIO_CCDGO            MPIO_CNMBR                MPIO_CRSLC
##  52:64      52001  : 1   ALBÁN (San José): 1   1834                : 2  
##             52019  : 1   ALDANA          : 1   1849                : 2  
##             52022  : 1   ANCUYA          : 1   1881                : 2  
##             52036  : 1   ARBOLEDA        : 1   Ordenanza 11 de 1911: 2  
##             52051  : 1   BARBACOAS       : 1   1540                : 1  
##             52079  : 1   BELEN           : 1   1544                : 1  
##             (Other):58   (Other)         :58   (Other)             :54  
##    MPIO_NAREA        MPIO_NANO     DPTO_CNMBR   Shape_Leng    
##  Min.   :  25.31   Min.   :2017   NARIÑO:64   Min.   :0.2409  
##  1st Qu.:  96.64   1st Qu.:2017               1st Qu.:0.4636  
##  Median : 236.75   Median :2017               Median :0.7825  
##  Mean   : 492.15   Mean   :2017               Mean   :1.1660  
##  3rd Qu.: 547.73   3rd Qu.:2017               3rd Qu.:1.4100  
##  Max.   :3611.35   Max.   :2017               Max.   :6.4534  
##                                                               
##    Shape_Area        MUNICIPIO             ANO_1          ANO_10    
##  Min.   :0.002050   Length:64          Min.   :2007   Min.   :2016  
##  1st Qu.:0.007825   Class :character   1st Qu.:2007   1st Qu.:2016  
##  Median :0.019186   Mode  :character   Median :2007   Median :2016  
##  Mean   :0.039820                      Mean   :2008   Mean   :2016  
##  3rd Qu.:0.044323                      3rd Qu.:2007   3rd Qu.:2016  
##  Max.   :0.291654                      Max.   :2013   Max.   :2017  
##                                        NA's   :18     NA's   :29    
##      ANO_11         ANO_12         ANO_2          ANO_3          ANO_4     
##  Min.   :2017   Min.   :2018   Min.   :2008   Min.   :2009   Min.   :2010  
##  1st Qu.:2017   1st Qu.:2018   1st Qu.:2008   1st Qu.:2009   1st Qu.:2010  
##  Median :2017   Median :2018   Median :2008   Median :2009   Median :2010  
##  Mean   :2017   Mean   :2018   Mean   :2008   Mean   :2009   Mean   :2010  
##  3rd Qu.:2017   3rd Qu.:2018   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010  
##  Max.   :2018   Max.   :2018   Max.   :2014   Max.   :2015   Max.   :2016  
##  NA's   :29     NA's   :31     NA's   :21     NA's   :21     NA's   :22    
##      ANO_5          ANO_6          ANO_7          ANO_8          ANO_9     
##  Min.   :2011   Min.   :2012   Min.   :2013   Min.   :2014   Min.   :2015  
##  1st Qu.:2011   1st Qu.:2012   1st Qu.:2013   1st Qu.:2014   1st Qu.:2015  
##  Median :2011   Median :2012   Median :2013   Median :2014   Median :2015  
##  Mean   :2011   Mean   :2012   Mean   :2013   Mean   :2014   Mean   :2015  
##  3rd Qu.:2011   3rd Qu.:2012   3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015  
##  Max.   :2017   Max.   :2018   Max.   :2018   Max.   :2017   Max.   :2018  
##  NA's   :23     NA's   :23     NA's   :27     NA's   :28     NA's   :28    
##   PRODUCCION_1    PRODUCCION_10    PRODUCCION_11    PRODUCCION_12 
##  Min.   :   0.0   Min.   :  12.0   Min.   :  12.0   Min.   :  39  
##  1st Qu.:  27.5   1st Qu.: 241.5   1st Qu.: 213.0   1st Qu.: 211  
##  Median : 224.0   Median : 808.0   Median : 597.0   Median : 594  
##  Mean   : 692.0   Mean   :1048.3   Mean   : 999.5   Mean   :1065  
##  3rd Qu.:1072.5   3rd Qu.:1643.5   3rd Qu.:1589.5   3rd Qu.:1595  
##  Max.   :7000.0   Max.   :4822.0   Max.   :4281.0   Max.   :4393  
##  NA's   :18       NA's   :29       NA's   :29       NA's   :31    
##   PRODUCCION_2     PRODUCCION_3     PRODUCCION_4      PRODUCCION_5   
##  Min.   :   2.0   Min.   :   2.0   Min.   :   7.00   Min.   :   5.0  
##  1st Qu.:  41.5   1st Qu.:  35.0   1st Qu.:  64.75   1st Qu.:  65.0  
##  Median : 215.0   Median : 224.0   Median : 307.50   Median : 196.0  
##  Mean   : 728.5   Mean   : 640.8   Mean   : 586.19   Mean   : 587.9  
##  3rd Qu.: 869.0   3rd Qu.: 835.5   3rd Qu.: 788.50   3rd Qu.: 776.0  
##  Max.   :7095.0   Max.   :4338.0   Max.   :3377.00   Max.   :2997.0  
##  NA's   :21       NA's   :21       NA's   :22        NA's   :23      
##   PRODUCCION_6   PRODUCCION_7     PRODUCCION_8      PRODUCCION_9   
##  Min.   :   0   Min.   :   5.0   Min.   :   3.00   Min.   :   3.0  
##  1st Qu.:  35   1st Qu.:  88.0   1st Qu.:  92.25   1st Qu.: 183.2  
##  Median : 140   Median : 612.0   Median : 663.50   Median : 785.5  
##  Mean   : 685   Mean   : 789.8   Mean   : 900.22   Mean   :1015.1  
##  3rd Qu.: 725   3rd Qu.:1091.0   3rd Qu.:1113.75   3rd Qu.:1641.0  
##  Max.   :5274   Max.   :4309.0   Max.   :4518.00   Max.   :4773.0  
##  NA's   :23     NA's   :27       NA's   :28        NA's   :28      
##  RENDIMIENTO_1   RENDIMIENTO_10  RENDIMIENTO_11 RENDIMIENTO_12 RENDIMIENTO_2  
##  Min.   :0.500   Min.   :0.670   Min.   :0.67   Min.   :0.69   Min.   :0.500  
##  1st Qu.:0.890   1st Qu.:1.085   1st Qu.:0.84   1st Qu.:0.86   1st Qu.:0.800  
##  Median :1.000   Median :1.100   Median :1.01   Median :1.03   Median :1.000  
##  Mean   :1.062   Mean   :1.092   Mean   :1.01   Mean   :1.04   Mean   :1.017  
##  3rd Qu.:1.200   3rd Qu.:1.130   3rd Qu.:1.10   3rd Qu.:1.12   3rd Qu.:1.200  
##  Max.   :1.900   Max.   :1.250   Max.   :1.82   Max.   :1.87   Max.   :1.650  
##  NA's   :19      NA's   :29      NA's   :29     NA's   :31     NA's   :21     
##  RENDIMIENTO_3    RENDIMIENTO_4   RENDIMIENTO_5    RENDIMIENTO_6  
##  Min.   :0.2000   Min.   :0.440   Min.   :0.4000   Min.   :0.200  
##  1st Qu.:0.7200   1st Qu.:0.900   1st Qu.:0.8000   1st Qu.:0.735  
##  Median :1.0000   Median :1.000   Median :1.0000   Median :0.960  
##  Mean   :0.9219   Mean   :1.018   Mean   :0.9571   Mean   :0.875  
##  3rd Qu.:1.1350   3rd Qu.:1.200   3rd Qu.:1.0000   3rd Qu.:1.185  
##  Max.   :1.5000   Max.   :1.800   Max.   :1.5000   Max.   :1.200  
##  NA's   :21       NA's   :22      NA's   :23       NA's   :24     
##  RENDIMIENTO_7   RENDIMIENTO_8    RENDIMIENTO_9            geometry 
##  Min.   :0.470   Min.   :0.5000   Min.   :0.620   MULTIPOLYGON :64  
##  1st Qu.:0.690   1st Qu.:0.6600   1st Qu.:1.040   epsg:4326    : 0  
##  Median :0.760   Median :0.8300   Median :1.070   +proj=long...: 0  
##  Mean   :0.833   Mean   :0.8828   Mean   :1.052                     
##  3rd Qu.:0.990   3rd Qu.:1.0175   3rd Qu.:1.100                     
##  Max.   :1.150   Max.   :1.2400   Max.   :1.210                     
##  NA's   :27      NA's   :28       NA's   :28

Gráfica

#install.packages("RColorBrewer")
library(RColorBrewer)
library(leaflet)
## Warning: package 'leaflet' was built under R version 3.6.3

Tracemos los municipios con su producción de café correspondiente para un solo año:

bins <- c(0, 250, 500, 1000, 2000, 5000, 10000, 15000)
pal <- colorBin("YlOrRd", domain = nari_munic_stat$PRODUCCION_12, bins = bins)

  mapa <- leaflet(data = nari_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 de Café en Nariño [Ton] (2018)",
    opacity = 1
  )
mapa
sessionInfo()
## R version 3.6.1 (2019-07-05)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 8.1 x64 (build 9600)
## 
## 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] 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.8-1           
## [10] raster_3.0-12       maptools_0.9-5      rgeos_0.5-1        
## [13] sp_1.4-1            forcats_0.4.0       stringr_1.4.0      
## [16] dplyr_0.8.4         purrr_0.3.3         readr_1.3.1        
## [19] tidyr_1.0.2         tibble_2.1.3        ggplot2_3.3.0      
## [22] tidyverse_1.3.0     here_0.1           
## 
## loaded via a namespace (and not attached):
##  [1] nlme_3.1-140            fs_1.3.2                lubridate_1.7.4        
##  [4] httr_1.4.1              rprojroot_1.3-2         tools_3.6.1            
##  [7] backports_1.1.4         R6_2.4.0                KernSmooth_2.23-15     
## [10] DBI_1.0.0               colorspace_1.4-1        withr_2.1.2            
## [13] tidyselect_0.2.5        gridExtra_2.3           compiler_3.6.1         
## [16] cli_1.1.0               rvest_0.3.5             xml2_1.2.5             
## [19] labeling_0.3            scales_1.1.0            classInt_0.4-1         
## [22] digest_0.6.21           foreign_0.8-71          rmarkdown_2.1          
## [25] pkgconfig_2.0.3         htmltools_0.3.6         dbplyr_1.4.2           
## [28] htmlwidgets_1.5.1       rlang_0.4.5             readxl_1.3.1           
## [31] rstudioapi_0.10         shiny_1.3.2             farver_2.0.3           
## [34] generics_0.0.2          jsonlite_1.6            crosstalk_1.0.0        
## [37] magrittr_1.5            Rcpp_1.0.2              munsell_0.5.0          
## [40] lifecycle_0.2.0         stringi_1.4.3           yaml_2.2.1             
## [43] grid_3.6.1              promises_1.0.1          crayon_1.3.4           
## [46] lattice_0.20-38         haven_2.2.0             hms_0.5.3              
## [49] knitr_1.28              pillar_1.4.2            codetools_0.2-16       
## [52] reprex_0.3.0            glue_1.3.1              evaluate_0.14          
## [55] leaflet.providers_1.9.0 data.table_1.12.2       modelr_0.1.6           
## [58] vctrs_0.2.4             httpuv_1.5.2            cellranger_1.1.0       
## [61] gtable_0.3.0            assertthat_0.2.1        xfun_0.12              
## [64] mime_0.7                xtable_1.8-4            broom_0.5.5            
## [67] e1071_1.7-2             later_0.8.0             class_7.3-15           
## [70] units_0.6-4             ellipsis_0.3.0