เดินลึกเข้าไปใน hierarchy
ลองฝึกการเข้าถึง slot โดยสำรวจวิธีที่ polygon ถูกเก็บไว้ภายในออบเจกต์ SpatialDataFrame จำไว้ว่ามีสองวิธีในการเข้าถึง slot ในออบเจกต์ S4:
x@slot_name # หรือ...
slot(x, "slot_name")
ดังนั้น หากต้องการดู slot polygons ของ countries_spdf ให้พิมพ์ countries_spdf@polygons ลองดูได้เลย แต่ผลลัพธ์ที่ได้จะยาวมากและไม่ค่อยให้ข้อมูลที่เป็นประโยชน์ มาดูโครงสร้างระดับสูงแทนดีกว่า
ลองรันโค้ดต่อไปนี้ใน console:
str(countries_spdf@polygons, max.level = 2)
ผลลัพธ์ยังค่อนข้างยาวอยู่ แต่ลองเลื่อนกลับขึ้นไปดูด้านบน ออบเจกต์นี้คืออะไร? มันเป็นเพียง list แต่ภายในแต่ละ element มีออบเจกต์ประเภท sp อีกชนิดหนึ่ง นั่นคือ Polygons โดยมีทั้งหมด 177 element ลองเดาดูว่าแต่ละ element แทนอะไร?
มาเจาะลึกลงไปใน element หนึ่งกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
คำแนะนำการฝึกหัด
- สร้างตัวแปรใหม่ชื่อ
oneที่เก็บ element ลำดับที่ 169 ของ list ใน slotpolygonsของcountries_spdfใช้การ subset ด้วย double bracket (เช่น[[...]]) เพื่อดึง element นี้ออกมา - พิมพ์
one - เรียกใช้
summary()กับoneออบเจกต์นี้มี slot อะไรบ้าง? - เรียกใช้
str()กับoneโดยกำหนดmax.level = 2
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 169th element of countries_spdf@polygons: one
# Print one
# Call summary() on one
# Call str() on one with max.level = 2