Kontrollera att data matchar
Att tvinga in data i data-sloten fungerar inte, eftersom man då förlorar den korrekta kopplingen mellan rader och geografiska objekt. Hur lägger man till inkomstdata i polygondata? Funktionen merge() i sp är skapad just för detta ändamål.
Du kanske har sett merge() tidigare med dataramar. sp::merge() har nästan exakt samma struktur, men du skickar in ett Spatial***-objekt och en dataram och får tillbaka ett nytt Spatial***-objekt där data-sloten nu är en sammanslagning av den ursprungliga data-sloten och dataramen. För att genomföra sammanslagningen krävs det att både det geografiska objektet och dataramen har en kolumn med ID:n att matcha på.
Både nyc_tracts och nyc_income har kolumner med trakt-ID:n, vilket gör dem till utmärkta kandidater för att slå samman de två datamängderna. Det är dock alltid klokt att kontrollera att de föreslagna ID:na är unika och att det finns en matchning för varje rad i båda datamängderna.
Låt oss kontrollera detta innan vi går vidare till sammanslagningen.
Den här övningen är en del av kursen
Visualisering av geospatial data i R
Övningsinstruktioner
- Använd
any()tillsammans medduplicated()pånyc_income$tractför att kontrollera att varje rad inyc_incomehar ett unikt trakt-ID. - Använd
any()tillsammans medduplicated()pånyc_tracts$TRACTCEför att kontrollera att varje rad inyc_tractshar ett unikt trakt-ID. - Använd
all()pånyc_tracts$TRACTCE %in% nyc_income$tractför att kontrollera att alla trakter inyc_tractsfinns inyc_income. - Använd
all()pånyc_income$tract %in% nyc_tracts$TRACTCEför att kontrollera att alla trakter inyc_incomefinns inyc_tracts.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Check for duplicates in nyc_income
# Check for duplicates in nyc_tracts
# Check nyc_tracts in nyc_income
# Check nyc_income in nyc_tracts