You are on page 1of 19

9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

LECCIÓN 2

Manipulación de datos geoespaciales en R

Esta lección fue escrita por Sean Angiolillo y se actualizó por última vez el 29 de enero de 2019.

La lección anterior examinó los numerosos casos de uso de datos geoespaciales. Ahora comenzaremos a manipular los datos
geoespaciales en R usando el sf paquete. Aprenderá cómo importar datos espaciales, combinar datos de atributos en
objetos geoespaciales existentes, calcular áreas y simplificar marcos de datos espaciales antes de trazarlos (que es el tema
de la próxima lección ).

Usando R como un SIG


Hasta hace poco, el trabajo serio con datos geoespaciales requería un GIS (Sistema de Información Geográfica) de escritorio,
con frecuencia propietario, como ArcGIS. Ahora, sin embargo, las capacidades GIS en R han avanzado mucho.

En muchos sentidos, los beneficios de usar R sobre un SIG de escritorio son similares a los beneficios de usar R sobre Excel
para el análisis de datos.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 1/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

R es gratuito y de código abierto , lo que hace que sea más fácil y económico comenzar, en comparación con las
costosas licencias necesarias para muchos SIG de escritorio. Esto ha ayudado a difundir el análisis de datos
geoespaciales más allá del dominio de solo especialistas en SIG, lo que abre la oportunidad a un ecosistema más amplio
de contribuyentes.

Como un lenguaje de programación completo, la interfaz de línea de comandos de R tiene una mayor flexibilidad que la
interfaz de apuntar y hacer clic de un SIG de escritorio. Esto significa que no hay restricción en lo que finalmente se
puede lograr.

R es reproducible de una manera que las interfaces de apuntar y hacer clic no lo son. Esto es, por supuesto, clave para el
proceso científico.

La mayor capacidad de compartir de los scripts y paquetes R fomenta un ciclo de desarrollo más rápido y un flujo de
trabajo más colaborativo.

Muchas de estas ventajas se aplican a cualquier lenguaje de programación de código abierto, como Python, que comparte
una API con muchos GIS de escritorio. Sin embargo, R, diseñado como un entorno para la computación estadística, es
particularmente adecuado para estadísticas espaciales y ofrece un acceso incomparable a un enorme ecosistema de
bibliotecas estadísticas. Las bibliotecas de visualización de datos de R en particular son una ventaja clave cuando se trata de
mapear datos geoespaciales.

APRENDE MÁS:
Consulte "¿Por qué Geocomputación con R?" para una mayor discusión de los méritos de R para GIS.

Empezando con R como un SIG

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 2/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Antes de trabajar con un nuevo área de dominio en R, es útil verificar su Vista de tareas CRAN asociada para obtener una
descripción general de los paquetes relevantes. La Vista de Tareas CRAN para el Análisis de Datos Espaciales enumera
docenas de paquetes relacionados con datos geoespaciales. Hasta hace poco, el primer paquete mencionado era sp , pero
ahora muestra primero el sf paquete y observa que el mantenimiento sp continuará.

¿Qué paquete debe utilizar para los datos geoespaciales? La respuesta podría diferir según sus objetivos, pero el sf paquete
es probablemente el mejor lugar para comenzar. El sf paquete (Características simples) proporciona un sistema de clase
para datos vectoriales geográficos. Es el sucesor del sp paquete y está siendo adoptado rápidamente por muchos otros
paquetes para datos geoespaciales.

Comencemos a explorar algunas de las características del paquete con datos económicos y de población indios simples a
nivel estatal.

APRENDE MÁS:
¿Nunca usaste el sf paquete? Comience con el libro de código abierto recientemente completado en desarrollo,
Geocomputation with R de Robin Lovelace, Jakub Nowosad y Jannes Muenchow. En particular, el Capítulo 2 brinda una
gran introducción sobre qué son las características simples y la estructura de los sf objetos.
Los entusiastas de los datos espaciales también están entusiasmados con el anuncio de que sf los autores del paquete,
Edzer Pebesma y Roger Bivand, están trabajando actualmente en un libro de código abierto propio, Ciencia de datos
espaciales . Los borradores de los primeros ocho capítulos de lo que seguramente será un recurso clave para el campo
ya están disponibles.

Creando objetos sf

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 3/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Para los usuarios de Tidyverse, uno de los aspectos más interesantes del sf paquete es la capacidad de trabajar con datos
geoespaciales en un flujo de trabajo ordenado. A diferencia de su paquete predecesor sp , con el sf paquete, los datos
geoespaciales y de atributos se pueden almacenar juntos en un marco de datos espacial , donde la geometría del objeto
ocupa una columna de lista especial. Además de ser más rápido, esto le permite manipular un sf objeto a través de
magrittr conductos como un marco de datos ordinario, o al menos uno con algunas características especiales.

Es ciertamente posible crear sus propios sf objetos con funciones del paquete como st_point() , st_linestring() , y
st_polygon() . Pero en la mayoría de los casos solo tenemos que leer datos espaciales existentes. Eso se hace generalmente
con la st_read() función.

Los shapefiles utilizados en esta demostración se pueden encontrar en el repositorio de GitHub asociado a este blog .

library(sf)
my_sf <- st_read("india_states_2014/india_states.shp")

## Reading layer `india_states' from data source `/Users/seanangiolillo/Library/Mobile Documents/com~apple~C


loudDocs/viz_india/india_states_2014/india_states.shp' using driver `ESRI Shapefile'
## Simple feature collection with 36 features and 8 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 68.11009 ymin: 6.755698 xmax: 97.4091 ymax: 37.0503
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs

NOTA:
Todas las sf funciones comienzan con st_* ayudar a los usuarios a identificarlos.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 4/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

En general, puede encontrar datos de límites administrativos de GADM . Mantiene los datos de límites administrativos
actuales de fuente abierta para la mayoría de los países. Es posible descargar datos espaciales directamente desde el sitio
web de GADM, pero usar el GADMTools paquete ayuda a garantizar que su flujo de trabajo sea reproducible. Especificando
level = 1 devuelve límites a nivel de estado.

APRENDE MÁS:
El sitio web de Robin Wilson proporciona una gran lista de fuentes de datos GIS gratuitas, que cubren tanto la geografía
física como la humana.

El siguiente código descargará los shapefiles para los estados de la India. Sin embargo, dado que Kashmir no está incluido en
las fronteras de la India, usaremos los shapefiles en el repositorio.

library(GADMTools)
india_wrapper <- gadm.loadCountries("IND", level = 1, basefile = "./")
# check your directory for a file "IND_adm1.rds" after running this command

Inspeccionar objetos
Antes de trabajar con este sf objeto, comparemos brevemente los paquetes sf y sp .

Primero, convertiré el sf objeto a SpatialPolygonsDataFrame , una clase S4 definida por el sp paquete. Podemos hacer esto
con sf::as() .

my_spdf <- as(my_sf, "Spatial")

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 5/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

class(my_spdf)

## [1] "SpatialPolygonsDataFrame"
## attr(,"package")
## [1] "sp"

Ahora podemos inspeccionar brevemente la estructura de a SpatialPolygonsDataFrame .

str(my_spdf, max.level = 2)

## Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots


## ..@ data :'data.frame': 36 obs. of 8 variables:
## ..@ polygons : List of 36
## ..@ plotOrder : int [1:36] 8 30 26 35 2 29 25 1 31 18 ...
## ..@ bbox : num [1:2, 1:2] 68.11 6.76 97.41 37.05
## .. ..- attr(*, "dimnames")=List of 2
## ..@ proj4string : Formal class 'CRS' [package "sp"] with 1 slot

Notamos que tiene 5 "ranuras" (cada una precedida por el @ símbolo). La primera ranura debe parecer familiar. La ranura de
datos contiene un marco de datos con 36 observaciones de 8 variables. Podemos extraer cualquiera de estas ranuras usando
el @ símbolo como lo haríamos normalmente con el $ símbolo.

library(tidyverse)
glimpse(my_spdf@data)

## Observations: 36
## Variables: 8
## $ id <dbl> 28, 1, 2, 3, 5, 6, 4, 8, 12, 7, 11, 13, 17, 14, 20, ...
## $ name <fct> Andhra Pradesh, Jammu & Kashmir, Himachal Pradesh, P...
## $ abbr <fct> AP, JK, HP, PB, UT, HR, CH, RJ, AR, DL, SK, NL, ML, ...
https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 6/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

## $ geo_level <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...


## $ minx <fct> 76.7600000000000051, 72.5742599999999953, 75.6050299...
## $ miny <fct> 12.6230899999999995, 32.2647800000000018, 30.3816600...
## $ maxx <fct> 84.7149699999999939, 80.3008899999999954, 79.0511599...
## $ maxy <fct> 19.1614800000000010, 37.0503000000000000, 33.2219100...

Los siguientes ranuras tienen polygons , plotOrder , bbox y proj4string . Volveremos a estos en el contexto de los
sf objetos. Por ahora, solo tenga en cuenta que los datos y aspectos de la geometría del objeto se mantienen en ranuras
separadas. Esto no es compatible con el flujo de trabajo de estilo tidyverse al que muchos de nosotros nos hemos
acostumbrado.

Si bien podemos continuar trabajando con este formato, volvamos a convertirlo en un sf objeto con la st_as_sf() función e
inspeccionemos la diferencia.

ind_sf <- st_as_sf(my_spdf)


class(ind_sf)

## [1] "sf" "data.frame"

La primera SpatialPolygonsDataFrame , una clase definida por el sp paquete, ahora tiene dos clases simultáneas: sf y
data.frame . Imprimir las primeras observaciones nos dice mucho sobre el objeto.

head(ind_sf, 3)

## Simple feature collection with 3 features and 8 fields


## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 72.57426 ymin: 12.62309 xmax: 84.71497 ymax: 37.0503
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 7/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

## id name abbr geo_level minx


## 1 28 Andhra Pradesh AP 3 76.7600000000000051
## 2 1 Jammu & Kashmir JK 3 72.5742599999999953
## 3 2 Himachal Pradesh HP 3 75.6050299999999993
## miny maxx maxy
## 1 12.6230899999999995 84.7149699999999939 19.1614800000000010
## 2 32.2647800000000018 80.3008899999999954 37.0503000000000000
## 3 30.3816600000000001 79.0511599999999959 33.2219100000000012
## geometry
## 1 MULTIPOLYGON (((80.0553 15....
## 2 MULTIPOLYGON (((77.57808 35...
## 3 MULTIPOLYGON (((75.80153 32...

Tiene 36 características (dependiendo de cuántos imprimimos) y 8 campos (nuestros atributos).

El geometry type es un multipolígono porque las geometrías representan las formas de varias áreas. Otros tipos de
geometría comunes incluyen puntos, líneas y sus contrapartes "múltiples".

bbox da las dimensiones del cuadro delimitador del objeto.

epsg y proj4string describir el sistema de referencia de coordenadas (CRS). Tenga en cuenta que este es un CRS
geográfico (medido en longitud y latitud) en lugar de un CRS proyectado.

APRENDE MÁS:
Para obtener más información sobre los sistemas de coordenadas de referencia, véase la sección 2.4 de
Geocomputación con R .

Podríamos acceder directamente a la información sobre las características espaciales del objeto con funciones como
st_geometry_type() , st_dimension() , st_bbox() y st_crs() . Por otra parte, las funciones familiares como glimpse() o
View() que iba a usar para explorar una trama de datos también funcionan en sf objetos.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 8/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Si inspecciona más este objeto, puede ver que tiene algunas columnas de atributos que dan una abreviatura y un cuadro de
límite para cada estado. Lo más importante es que la última columna contiene la geometría de cada estado en una columna
de lista.

glimpse(ind_sf)

## Observations: 36
## Variables: 9
## $ id <dbl> 28, 1, 2, 3, 5, 6, 4, 8, 12, 7, 11, 13, 17, 14, 20, ...
## $ name <fct> Andhra Pradesh, Jammu & Kashmir, Himachal Pradesh, P...
## $ abbr <fct> AP, JK, HP, PB, UT, HR, CH, RJ, AR, DL, SK, NL, ML, ...
## $ geo_level <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ minx <fct> 76.7600000000000051, 72.5742599999999953, 75.6050299...
## $ miny <fct> 12.6230899999999995, 32.2647800000000018, 30.3816600...
## $ maxx <fct> 84.7149699999999939, 80.3008899999999954, 79.0511599...
## $ maxy <fct> 19.1614800000000010, 37.0503000000000000, 33.2219100...
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((80.0553 15...., MULTIPO...

Manipulando objetos sf
Debido a que los marcos de datos espaciales en el sf paquete son marcos de datos, podemos manipularlos usando nuestras
herramientas normales de manipulación de datos, como dplyr . Aquí solo seleccionaremos y renombraremos las columnas
que queramos.

uts <- c("Delhi", "Andaman & Nicobar Islands", "Puducherry",


"Lakshadweep", "Dadra & Nagar Haveli", "Daman & Diu",
"Chandigarh")

ind_sf <- ind_sf %>%

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 9/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

select(name, abbr) %>%


mutate(
type = ifelse(name %in% uts, "Union Territory", "State")
) %>%
rename(abb = abbr, state_ut = name)

NOTA:
Esto no selecciona explícitamente la columna de geometría, pero la geometría en los sf objetos es pegajosa .
Permanece en el objeto a menos que se descarte explícitamente con ind_sf %>% st_set_geometry(NULL) .

Para aquellos que ya están familiarizados con el tidyverse, usar dplyr verbos normales para manipular sf objetos es uno de
los grandes beneficios de usar el paquete sf. Si estuviéramos trabajando con las ranuras de lo anterior
SpatialPolygonsDataFrame , esto no sería posible. Además, tenga en cuenta que estas manipulaciones no han afectado a la
clase de nuestro objeto de ninguna manera.

class(ind_sf)

## [1] "sf" "data.frame"

Preparación de datos de atributos


Ahora que tenemos un marco de datos espacial, debemos preparar los datos de atributos asociados para cada estado o
territorio de la unión.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 10/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Ya que nos estamos enfocando en el proceso en lugar de los datos en sí, usaremos datos de población , económicos y
regionales de Wikipedia. Si no está familiarizado con la importación de datos mediante el googlesheets paquete, el raspado
web con el que está rvest lidiando y la organización dplyr , consulte el prepare_data.R script en este repositorio de GitHub
para ver cómo attributes.rds se ensamblaron los datos.

APRENDE MÁS:
¿No estás familiarizado con estos paquetes? Echa un vistazo a la viñeta del googlesheets paquete y al capítulo
Transformación de datos de la R para la ciencia de datos de Hadley Wickham .

Una vez que hemos preparado un marco de datos de atributos, podemos unirlo al marco de datos espacial al igual que con
dos marcos de datos, así como mutar dos nuevas variables.

# see prepare_data.R script in github for details of creating attributes_df


attributes_df <- readRDS("attributes.rds")

ind_sf <- ind_sf %>%


left_join(attributes_df, by = "state_ut") %>%
mutate(
per_capita_gdp_inr = nominal_gdp_inr / pop_2011,
per_capita_gdp_usd = nominal_gdp_usd / pop_2011
)

APRENDE MÁS:
Consulte el capítulo Datos relacionales de R para Data Science si left_join() no está familiarizado.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 11/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Si inspeccionamos este objeto una vez más, podemos ver que tiene todas las columnas de atributos esperados, y la última
columna contiene la geometría de cada estado en una lista. Los mismos atributos espaciales con respecto al cuadro
delimitador del objeto y CRS también se mantienen.

head(ind_sf, 3)

## Simple feature collection with 3 features and 17 fields


## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 72.57426 ymin: 12.62309 xmax: 84.71497 ymax: 37.0503
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
## state_ut abb type data_year comparable_economy nominal_gdp_usd
## 1 Andhra Pradesh AP State 2018–19 Hungary 1.36e+11
## 2 Jammu & Kashmir JK State 2018–19 Iceland 2.50e+10
## 3 Himachal Pradesh HP State 2018–19 Iceland 2.50e+10
## nominal_gdp_inr pop_2011 decadal_growth rural_pop urban_pop area_km2
## 1 8.70e+12 49386799 0.111 34776389 14610410 162968
## 2 1.57e+12 12548926 0.237 9134820 3414106 222236
## 3 1.52e+12 6864602 0.128 6167805 688704 55673
## density_km2 sex_ratio region per_capita_gdp_inr per_capita_gdp_usd
## 1 303 993 Southern 176160.4 2753.772
## 2 57 883 Northern 125110.3 1992.202
## 3 123 974 Northern 221425.8 3641.872
## geometry
## 1 MULTIPOLYGON (((80.0553 15....
## 2 MULTIPOLYGON (((77.57808 35...
## 3 MULTIPOLYGON (((75.80153 32...

Área de cálculo

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 12/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Nuestros datos de atributos ya tienen una columna para el área, extraída de Wikipedia. Sin embargo, si este no fuera el caso o
no confiésemos en los datos, podríamos calcular el área de cada observación en nuestro marco de datos espacial utilizando
la st_area() función.

Es lo suficientemente simple para hacer esto, pero debemos tener cuidado con las unidades. En este caso, tenemos que
convertir de metros cuadrados a kilómetros cuadrados.

library(units)
# mutate area
ind_sf <- ind_sf %>%
mutate(my_area = st_area(.))

# convert units
units(ind_sf$my_area) <- with(ud_units, km^2)

# mutate gdp density


ind_sf <- ind_sf %>%
mutate(gdp_density_usd_km2 = nominal_gdp_usd / my_area)

NOTA:
Consulte esta guía sobre unidades de medida para vectores R para obtener más información sobre la conversión de
unidades en R.

En la salida a continuación, note la diferencia entre la clase numérica simple area_km2 y la clase de "unidades" para el cálculo
del área resultante de st_area() .

class(ind_sf$area_km2)

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 13/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

## [1] "numeric"

class(ind_sf$my_area)

## [1] "units"

Por otra parte, podemos ver que las dos figuras están cerca pero no exactamente iguales.

## state_ut area_km2 my_area


## 1 Rajasthan 342239 342357.2 km^2
## 2 Madhya Pradesh 308245 308203.8 km^2
## 3 Maharashtra 307713 307337.5 km^2
## 4 Uttar Pradesh 240928 241146.5 km^2
## 5 Jammu & Kashmir 222236 219911.8 km^2
## 6 Karnataka 191791 192004.8 km^2

Simplificando la geometría
Antes de trazar sf objetos (el tema de la próxima lección ), deberíamos simplificar los polígonos en el marco de datos
espacial.

Para mapas simples, no es necesario tener el nivel de detalle que viene con los datos GADM o muchas otras fuentes de datos
geoespaciales. La simplificación puede reducir enormemente los requisitos de memoria y sacrificar muy poco en términos de
salida visual. Afortunadamente, hay un proceso fácil para reducir el número de vértices en un polígono mientras se mantiene
la misma forma visible.

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 14/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Una opción es sf::st_simplify() , pero aquí usaremos la ms_simplify() función del rmapshaper paquete. A continuación,
mantenemos solo el 1% de los vértices del objeto mientras mantenemos el mismo número de formas.

NOTA:
Otra función útil es sf::st_geometry() . Cuando se le pasa un sf objeto, devolverá solo la geometría. Esto nos permite
crear una gráfica rápida de solo la geometría para comprobar si todo se ve bien.
También eliminamos la clase de unidades para el área que calculamos porque creó un problema para ms_simplify() .
Siempre podemos agregarlo después de la simplificación.

# clase de unidades de tiras


ind_sf <- ind_sf%>%

mutate
( my_area = as.vector (my_area), gdp_density_usd_km2 = as.vector (gdp_density_usd
_km2)
)

original_geometry <- st_geometry (ind_sf)

biblioteca (rmapshaper)
simp_sf <- ms_simplify (ind_sf, keep = 0.01 , keep_shapes = TRUE )
simple_geometry <- st_geometry (simp_sf)

par (mfrow = c ( 1 , 2 ))
plot (original_geometry, main = "Geometría original" )
plot (simple_geometry, main = "Geometría simplificada" )

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 15/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

El mapa original está arriba a la izquierda, y la versión simplificada está a la derecha. La versión simplificada no se ve
diferente a pesar de tener solo el 1% de los vértices. De hecho, se ve aún mejor porque las líneas de borde son más limpias.

Además, la simplificación redujo el tamaño de la geometría de 9.56 MB a solo 150 KB.

library(pryr)
object_size(original_geometry)

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 16/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

## 9.56 MB

object_size(simple_geometry)

## 150 kB

Finalmente, guardemos el marco de datos espacial simplificado para la siguiente lección.

saveRDS(simp_sf, "simp_sf.rds")

NOTA:
Para obtener más información acerca de la simplificación, véase la sección 5.2.1 del Geocomputación con R .

Pensamientos finales
Después de presentar brevemente el contexto del uso de R como un SIG, esta lección mostró cómo el sf paquete crea una
estructura de clase para almacenar datos geoespaciales y de atributos juntos en un objeto que se ajusta a un flujo de trabajo
tidyverse. Podemos ver claramente los beneficios de esta estructura cuando se trata de manipular un marco de datos
espacial con nuestros dplyr verbos familiares .

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 17/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

Ahora que sabe cómo manipular datos geoespaciales, el siguiente paso natural es la visualización o el mapeo. Una vez más,
vamos a ver el beneficio de un flujo de trabajo ordenado, ahora que ggplot2 's geom_sf() está disponible para nosotros. Sin
embargo, como verá en la siguiente lección, ggplot2 es solo una de las excelentes opciones de paquetes cuando se trata de
visualizar datos geoespaciales en R.

SIGUIENTE LECCIÓN

Creando mapas estáticos en R →

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 18/19
9/2/2019 SocialCops | Curso en línea - Introducción a GIS en R: Lección 2

En una misión para enfrentar los problemas más críticos del mundo a través de la inteligencia de datos.

PLATAFORMA SOLUCIONES ACERCA DE BLOG

Visión general Gobierno Empresa Academia

Recoger Sin ánimo de lucro Propósito Inteligencia de datos

Acceso FMCG Fogonadura Tecnología

Transformar Inteligencia de mercado Equipo Dentro de socialcops

Visualizar Seguimiento de SDG Contáctenos Seminario web

Monitoreo de esquemas Carreras profesionales Cursos online

Donacion estrategica Estudios de caso

Geo localización

Expansión Informada

8,350 líderes del Banco Mundial, USAID, la Universidad de Chicago y otras organizaciones increíbles se suscriben a nuestros boletines informativos para obtener recursos
de datos, estudios de casos y mejores prácticas. Ahora es tu turno.

yourname@website.com Suscribir

© 2019 Peeply Private Limited | Legal

https://socialcops.com/courses/introduction-to-gis-r/lesson2-manipulating-geospatial-data/ 19/19

You might also like