Aggiungere dati a oggetti spaziali

Visualizzare dati geospaziali in R

Charlotte Wickham

Assistant Professor at Oregon State University

Dati di reddito da 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 ...
Visualizzare dati geospaziali in R

Dati poligonali dei tract

str(nyc_tracts, max.level = 2)
Classe formale 'SpatialPolygonsDataFrame' [package "sp"] con 5 slot
  ..@ data       :'data.frame':    288 obs. di  9 variabili:
  ..@ polygons   :Lista di 288
  .. .. [output lista troncato]
  ..@ 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 di 2
  ..@ proj4string:Classe formale 'CRS' [package "sp"] con 1 slot
Visualizzare dati geospaziali in R

Dati poligonali dei tract

str(nyc_tracts@data)
'data.frame':    288 obs. di  9 variabili:
 $ 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 ...
  • Obiettivo: aggiungere il reddito mediano stimato a questo data frame
Visualizzare dati geospaziali in R

Corrispondenza tra poligoni e dati

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
Visualizzare dati geospaziali in R

Corrispondenza tra poligoni e dati

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
Visualizzare dati geospaziali in R

Corrispondenza tra poligoni e dati

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

SpatialPolygonsDataFrame(four_tracts, four_data)@data
    TRACTCE
156  001401
157  002201
158  003200
159  004000
Visualizzare dati geospaziali in R

Corrispondenza tra poligoni e dati

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

La corrispondenza è ora persa!

Visualizzare dati geospaziali in R

Aggiungere nuovi dati

  • Una volta creato, nessun controllo che i dati restino abbinati ai poligoni
  • Ricrea l'oggetto facendo attenzione ad abbinare poligoni e righe corrette
  • sp::merge(), merge() per oggetti sp
Visualizzare dati geospaziali in R

Ayo berlatih!

Visualizzare dati geospaziali in R

Preparing Video For Download...