데이터가 일치하는지 확인하기
data 슬롯에 데이터를 억지로 넣으면 행과 공간 객체 사이의 올바른 대응 관계가 깨지기 때문에 올바르게 동작하지 않아요. 그럼 소득 데이터를 폴리곤 데이터에 어떻게 추가할 수 있을까요? 이를 위해 sp의 merge() 함수가 정확히 설계되어 있습니다.
여러분은 아마 데이터 프레임에서 merge()를 본 적이 있을 거예요. sp::merge()의 구조도 거의 동일하지만, Spatial*** 객체와 데이터 프레임을 전달하면, 반환되는 새로운 Spatial*** 객체의 데이터 슬롯은 기존 데이터 슬롯과 전달한 데이터 프레임이 병합된 형태가 됩니다. 이 병합을 수행하려면 공간 객체와 데이터 프레임 모두에서 서로 매칭할 ID를 담은 열이 필요합니다.
nyc_tracts와 nyc_income에는 둘 다 트랙트 ID 열이 있으므로, 두 데이터셋을 병합하기에 아주 적합합니다. 다만, 제안된 ID가 고유한지, 그리고 두 데이터셋의 모든 행에 대해 일대일로 매칭이 되는지 확인하는 것이 항상 좋아요.
병합으로 넘어가기 전에 이를 먼저 확인해 봅시다.
이 연습은 강의의 일부입니다
R로 지리공간 데이터 시각화하기
연습 안내
nyc_income$tract에duplicated()와any()를 사용해nyc_income의 모든 행이 고유한 트랙트 ID를 갖는지 확인하세요.nyc_tracts$TRACTCE에duplicated()와any()를 사용해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