檢查資料是否能對應
直接把你的資料硬塞進 data 欄位不可行,因為你會失去列與空間物件之間正確的對應關係。要如何把收入資料加到多邊形資料上?sp 套件中的 merge() 就是為此而設計。
你可能在資料框上用過 merge()。sp::merge() 的結構幾乎一樣,不過它接收一個 Spatial*** 物件與一個資料框,並回傳一個新的 Spatial*** 物件,其中的 data 欄位是原本 data 欄位與該資料框合併後的結果。要完成這個合併,空間物件與資料框都需要各自有一個包含可配對 ID 的欄位。
nyc_tracts 與 nyc_income 都有分區(tract)ID 的欄位,因此很適合用來合併這兩個資料集。不過,事先檢查這些候選 ID 是否唯一,且兩個資料集中每一列是否都有相對應的配對,始終是好主意。
在進行合併前,先來做這些檢查。
本練習屬於課程
在 R 視覺化地理空間資料
練習說明
- 對
nyc_income$tract使用any()與duplicated(),檢查nyc_income中每一列是否都有唯一的分區 ID。 - 對
nyc_tracts$TRACTCE使用any()與duplicated(),檢查nyc_tracts中每一列是否都有唯一的分區 ID。 - 對
nyc_tracts$TRACTCE %in% nyc_income$tract使用all(),檢查nyc_tracts的分區是否全部存在於nyc_income。 - 對
nyc_income$tract %in% nyc_tracts$TRACTCE使用all(),檢查nyc_income的分區是否全部存在於nyc_tracts。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Check for duplicates in nyc_income
# Check for duplicates in nyc_tracts
# Check nyc_tracts in nyc_income
# Check nyc_income in nyc_tracts