การรวมแอตทริบิวต์ข้อมูล
โดยค่าเริ่มต้น merge() จะรวมข้อมูลโดยอิงจากคอลัมน์ที่มีชื่อเหมือนกันในทั้งสองชุดข้อมูล ซึ่งในกรณีนี้ไม่เหมาะสม เพราะคอลัมน์ที่เก็บ ID มีชื่อว่า tract ในชุดข้อมูลหนึ่ง และ TRACTCE ในอีกชุดข้อมูล
เพื่อจัดการกับปัญหานี้ merge() มีอาร์กิวเมนต์เสริมคือ by.x และ by.y ซึ่งใช้ระบุชื่อคอลัมน์ที่ต้องการรวมในแต่ละชุดข้อมูลตามลำดับ
merge() จะคืนค่าเป็นออบเจ็กต์ Spatial___DataFrame ใหม่ จึงสามารถดูผลลัพธ์ได้โดยพล็อตด้วย tmap
มาเริ่มรวมข้อมูลกันเลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
คำแนะนำการฝึกหัด
- ใช้
merge()โดยส่ง spatial objectnyc_tractsเป็นอาร์กิวเมนต์แรก และ data framenyc_incomeเป็นอาร์กิวเมนต์ที่สอง จากนั้นระบุby.x = "TRACTCE"และby.y = "tract"แล้วเก็บผลลัพธ์ไว้ในตัวแปรnyc_tracts_merge - ใช้
summary()กับnyc_tracts_mergeเพื่อตรวจสอบว่าออบเจ็กต์เป็นSpatialPolygonsDataFrameและข้อมูลมีคอลัมน์estimateจากnyc_incomeครบถ้วน - ใช้
tm_shape()และเพิ่มเลเยอร์tm_fill()เพื่อสร้างแผนที่ choropleth ของnyc_tracts_mergeโดยแมปสีกับคอลัมน์estimate
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
library(sp)
library(tmap)
# Merge nyc_tracts and nyc_income: nyc_tracts_merge
# Call summary() on nyc_tracts_merge
# Choropleth with col mapped to estimate