Añadir datos a objetos espaciales

Visualización de datos geoespaciales en R

Charlotte Wickham

Assistant Professor at Oregon State University

Datos de ingresos del ACS

str(nyc_income)
'data.frame':    288 obs. of  6 variables:
 $ name    : chr  "Census Tract 1, New York County, New York" 
 "Census Tract 2.01, New York County, New York" 
 "Census Tract 2.02, New York County, New York" 
 "Census Tract 5, New York County, New York" ...
 $ state   : int  36 36 36 36 36 36 36 36 36 36 ...
 $ county  : int  61 61 61 61 61 61 61 61 61 61 ...
 $ tract   : chr  "000100" "000201" "000202" "000500" ...
 $ estimate: num  NA 23036 29418 NA 18944 ...
 $ se      : num  NA 3083 1877 NA 1442 ...
Visualización de datos geoespaciales en R

Datos de polígonos por tracto

str(nyc_tracts, max.level = 2)
Clase formal 'SpatialPolygonsDataFrame' [paquete "sp"] con 5 slots
  ..@ data       :'data.frame':    288 obs. de  9 variables:
  ..@ polygons   :Lista de 288
  .. .. [salida de lista truncada]
  ..@ plotOrder  : int [1:288] 175 225 97 209 249 232 208 247 244 207 ...
  ..@ bbox       : num [1:2, 1:2] -74 40.7 -73.9 40.9
  .. ..- attr(*, "dimnames")=Lista de 2
  ..@ proj4string:Clase formal 'CRS' [paquete "sp"] con 1 slot
Visualización de datos geoespaciales en R

Datos de polígonos por tracto

str(nyc_tracts@data)
'data.frame':    288 obs. of  9 variables:
 $ STATEFP : chr  "36" "36" "36" "36" ...
 $ COUNTYFP: chr  "061" "061" "061" "061" ...
 $ TRACTCE : chr  "001401" "002201" "003200" "004000" ...
 $ AFFGEOID: chr  "1400000US36061001401" "1400000US36061002201" 
 "1400000US36061003200" "1400000US36061004000" ...
 $ GEOID   : chr  "36061001401" "36061002201" "36061003200" "36061004000" ...
 $ NAME    : chr  "14.01" "22.01" "32" "40" ...
 $ LSAD    : chr  "CT" "CT" "CT" "CT" ...
 $ ALAND   : num  93510 161667 217682 178340 124447 ...
 $ AWATER  : num  0 0 0 0 0 0 0 0 0 0 ...
  • Objetivo: añadir la renta mediana estimada a este data frame
Visualización de datos geoespaciales en R

Correspondencia entre polígonos y datos

four_tracts
class       : SpatialPolygons 
features    : 4 
extent      : -73.99022, (xmin)
              -73.97875, (xmax)
              40.71413,  (ymin)
              40.73329   (ymax)
coord. ref. : +proj=longlat +datum=NAD83
              +no_defs +ellps=GRS80 
              +towgs84=0,0,0 
sapply(four_tracts@polygons,
       function(x) x@ID)
"156" "157" "158" "159"
four_data
    TRACTCE
159  004000
158  003200
157  002201
156  001401
Visualización de datos geoespaciales en R

Correspondencia entre polígonos y datos

SpatialPolygonsDataFrame(Sr, data, match.ID = TRUE)

SpatialPolygonsDataFrame(four_tracts, four_data)
class       : SpatialPolygonsDataFrame 
features    : 4 
extent      : -73.99022, -73.97875, 40.71413, 40.73329  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=NAD83 +no_defs +ellps=GRS80 +towgs84=0,0,0 
variables   : 1
names       : TRACTCE 
min values  :  001401 
max values  :  004000
Visualización de datos geoespaciales en R

Correspondencia entre polígonos y datos

SpatialPolygonsDataFrame(Sr, data, match.ID = TRUE)

SpatialPolygonsDataFrame(four_tracts, four_data)@data
    TRACTCE
156  001401
157  002201
158  003200
159  004000
Visualización de datos geoespaciales en R

Correspondencia entre polígonos y datos

SpatialPolygonsDataFrame(four_tracts, four_data, match.ID = FALSE)@data
    TRACTCE
159  004000
158  003200
157  002201
156  001401

¡Se ha perdido la correspondencia!

Visualización de datos geoespaciales en R

Añadir datos nuevos

  • Una vez creado, no se comprueba que los datos sigan coincidiendo con los polígonos
  • Vuelve a crear el objeto cuidando que cada polígono coincida con su fila
  • sp::merge(),merge() para objetos sp
Visualización de datos geoespaciales en R

¡Vamos a practicar!

Visualización de datos geoespaciales en R

Preparing Video For Download...