เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Subset ย่านละแวกบ้าน

ไม่จำเป็นต้องใช้ย่านละแวกบ้านทั้งหมดใน New York ดังนั้นจึง subset เฉพาะย่านที่อยู่ใน New York County เท่านั้น ซึ่งเป็นวิธีที่คุ้นเคยอยู่แล้ว!

neighborhoods เป็น SpatialPolygonsDataFrame และในบทที่ 2 ได้เรียนรู้วิธี subset โดยอิงจากคอลัมน์ใน slot data แล้ว โดยหลักการคือสร้าง logical vector ก่อน แล้วจึง subset SpatialPolygonsDataFrame เหมือนกับ data frame

จะระบุย่านที่ถูกต้องได้อย่างไร? ลองดูที่:

head(neighborhoods@data)

CountyFIPS คือรหัสตัวเลขที่ใช้ระบุ county หากหารหัสของ New York County ได้ ก็สามารถเก็บเฉพาะแถวที่มีค่านั้นไว้ได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การสร้างภาพข้อมูลภูมิสารสนเทศใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ออบเจกต์ nyc_tracts_merge มีรหัส county อยู่ในคอลัมน์ COUNTYFP เช่นกัน ใช้ unique() เพื่อค้นหารหัสของ New York County
  • Subset neighborhoods โดยเพิ่ม logical ที่ตรวจสอบว่า neighborhoods$CountyFIPS มีค่าที่ถูกต้องหรือไม่
  • แก้ไขโค้ดพล็อตให้ใช้ manhat_hoods แทน neighborhoods
  • เพิ่ม layer tm_text() โดย mapping text ไปที่ "NTAName"

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

library(tmap)

# Find unique() nyc_tracts_merge$COUNTYFP


# Add logical expression to pull out New York County
manhat_hoods <- neighborhoods[___, ]

tm_shape(nyc_tracts_merge) +
  tm_fill(col = "estimate") +
  tm_shape(water) +
  tm_fill(col = "grey90") +
  # Edit to use manhat_hoods instead
  tm_shape(neighborhoods) +
  tm_borders() +
  # Add a tm_text() layer
    
แก้ไขและรันโค้ด