วิธีที่ผิด
เมื่อสร้างออบเจกต์ประเภท Spatial***DataFrame จะมีสองวิธีในการจับคู่ออบเจกต์เชิงพื้นที่ (เช่น Polygons) กับแถวของข้อมูล วิธีที่แข็งแกร่งที่สุดคือการใช้ ID บนออบเจกต์เชิงพื้นที่เพื่อจับคู่กับชื่อแถวในข้อมูล ซึ่งช่วยให้ตรวจพบความไม่ตรงกันได้ทันที อีกวิธีหนึ่งคือการจับคู่ตามลำดับ โดยสมมติว่าออบเจกต์เชิงพื้นที่ลำดับแรกตรงกับแถวแรกของข้อมูล
เมื่อสร้างแล้ว การจับคู่จะอิงตามลำดับเท่านั้น หากแก้ไข slot data โดยตรง ระบบจะไม่ตรวจสอบว่าออบเจกต์เชิงพื้นที่ยังคงตรงกับแถวที่ถูกต้องหรือไม่ ในทางปฏิบัติหมายความว่าอะไร? การแก้ไข slot data โดยตรงนั้นอันตรายมาก!
ในการสร้างแผนที่รายได้ คุณต้องจับคู่ data frame ของรายได้กับ SpatialPolygonsDataFrame ของ tracts เพื่อให้เห็นถึงอันตรายของการแก้ไข @data โดยตรง มาดูกันว่าจะเกิดอะไรขึ้นหากพยายามบังคับใส่ nyc_income เข้าไปใน nyc_tracts
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
library(sp)
# Use str() on nyc_income
# ...and on nyc_tracts@data