Chapter 4 Data

Ejemplificaremos con datos de alojamientos de Airbnb en la ciudad de Berlin, Alemania, disponibles en Inside Airbnb

Accedemos a los datos desde la url.

## Parsed with column specification:
## cols(
##   id = col_double(),
##   name = col_character(),
##   host_id = col_double(),
##   host_name = col_character(),
##   neighbourhood_group = col_character(),
##   neighbourhood = col_character(),
##   latitude = col_double(),
##   longitude = col_double(),
##   room_type = col_character(),
##   price = col_double(),
##   minimum_nights = col_double(),
##   number_of_reviews = col_double(),
##   last_review = col_date(format = ""),
##   reviews_per_month = col_double(),
##   calculated_host_listings_count = col_double(),
##   availability_365 = col_double()
## )
## Parsed with column specification:
## cols(
##   id = col_double(),
##   review_scores_rating = col_double()
## )

4.1 GDS

  • R no es un SIG (Sistemas de Información Geográficos)

  • R permite hacer Ciencia de Datos Geográficos (SDG)

Atributos SIG SDG
Disciplinas Geografía Geografía, Computación, Estadística
Foco Interfaz Gráfica Código
Reproducibilidad Mínimo Máximo

4.2 Paquetes

  • sp, sf: para manejar información espacial vectorial
  • raster: para trabajar con rasters

  • ggplot2, rasterVis, tmap, leaflet, o mapview: para visualizar información espacial

  • Es sencillo conectar R con programas SIG: GRASS GIS (rgrass7), SAGA (RSAGA), QGIS (RQGIS y qgisremote), incluso ArcGIS (arcgisbinding).

4.3 sf

Combina las funcionalidades de 3 paquetes: sp, rgeos y rgdal

Ventajas respecto a otros paquetes:

Mayor velocidad para importar y exportar los datos

Más tipos de geometrías soportadas

Compatibilidad con tidyverse. Funciona el pipe!

El paquete sp es predecesor de sf.

Muchos paquetes espaciales de R todavía dependen del paquete sp, por lo tanto, es importante saber cómo convertir.

Convertir objetos sf a sp

Convertir objetos sp a sf

4.4 st_read()

Los objetos sf tienen una clase que combina ‘data.frame’ y ‘sf’

Los objetos sf también tienen una columna especial que contiene los datos de geometría, usualmente llamado ‘geom’ o ‘geometry’.

Las funciones del paquete dplyr se pueden aplicar. Para saber la totalidad de funciones que son aplicables a un objeto de clase ‘sf’ consultar methods().

Para la unión de objetos espaciales se usa st_join(x, y). El método de join utilizado es siempre left join, manteniendo los registros del primer atributo.

4.5 Importar shapes

Los shapes con límites de los barrios de Berlin los obtenemos aquí.

Para trabajar descomprimimos el zip y dejamos los 5 archivos en una misma carpeta.

## Linking to GEOS 3.5.1, GDAL 2.2.2, PROJ 4.9.2
## Reading layer `GISPORTAL_GISOWNER01_BERLIN_BEZIRKE_BOROUGHS01' from data source `/home/calcita/MEGA/R/github.io/R-tutorial/R-tutorial/data/GISPORTAL_GISOWNER01_BERLIN_BEZIRKE_BOROUGHS01.shp' using driver `ESRI Shapefile'
## Simple feature collection with 12 features and 3 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: 13.08835 ymin: 52.33824 xmax: 13.76114 ymax: 52.67551
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
## [1] "sf"         "data.frame"

4.6 Mapa de coropletas

  • Buenas prácticas

  • Es un mapa temático en el que las regiones se colorean de un motivo que muestra una medida estadística.

4.7 Encoding

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
##  [1] "Mitte"                      "Friedrichshain-Kreuzberg"  
##  [3] "Pankow"                     "Charlottenburg-Wilmersdorf"
##  [5] "Spandau"                    "Steglitz-Zehlendorf"       
##  [7] "Tempelhof-Schöneberg"       "Neukölln"                  
##  [9] "Treptow-Köpenick"           "Marzahn-Hellersdorf"       
## [11] "Lichtenberg"                "Reinickendorf"

4.10 leaflet

  • El paquete leaflet es una extensión java script para R que permite hacer mapas interactivos.

  • Tutorial para comenzar.

4.11 leaflet()

Función Descripción
leaflet() crea el objeto leaflet
addTiles() define el mapa de base, por defecto utiliza OpenStreetMap. Opciones
setView() define por centroide y zoom
addMarkers() marcadores a partir de una capa espacial o de pares de coordenadas.

El orden de los comandos es importante.

4.13 Mapa

4.15 Alojamientos Berlin