錯誤示範
當建立 Spatial***DataFrame 物件時,空間物件(例如 Polygons)對應到資料列有兩種方式。最穩健的是使用空間物件上的 ID,對應到資料中的列名稱。如此一來,只要有不匹配的情況,你就能立即被提醒。另一種方式則是單純依照順序——第一個空間物件被視為對應到第一列資料。
一旦建立後,對應關係就完全以順序為準。如果你操作 data 插槽,系統不會檢查空間物件是否仍對應到正確的資料列。這在實務上代表什麼?直接操作 data 插槽非常危險!
為了繪製收入的地圖,你需要將收入的資料框與分區的 SpatialPolygonsDataFrame 配對。為了說明直接操作 @data 的風險,來看看若你嘗試把 nyc_income 強行放進 nyc_tracts 會發生什麼事。
本練習屬於課程
在 R 視覺化地理空間資料
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
library(sp)
# Use str() on nyc_income
# ...and on nyc_tracts@data