Controleren of data overeenkomt
Je data dwingen in de data-slot werkt niet, omdat je zo de juiste overeenkomst tussen rijen en ruimtelijke objecten kwijtraakt. Hoe voeg je de inkomensdata toe aan de polygoondata? De functie merge() in sp is hier precies voor bedoeld.
Je hebt merge() misschien al eerder gezien bij data frames. sp::merge() heeft bijna dezelfde structuur, maar je geeft er een Spatial***-object en een data frame aan door en je krijgt een nieuw Spatial***-object terug waarbij de data-slot nu een merge is van de oorspronkelijke data-slot en het data frame. Om deze merge te doen, moeten zowel het ruimtelijke object als het data frame een kolom hebben met IDs om op te matchen.
Zowel nyc_tracts als nyc_income hebben kolommen met tract-IDs, dus dit zijn uitstekende kandidaten om de twee gegevenssets te mergen. Het is echter altijd verstandig om te controleren dat de voorgestelde IDs uniek zijn en dat er voor elke rij in beide gegevenssets een match is.
Laten we dit controleren voordat we gaan mergen.
Deze oefening maakt deel uit van de cursus
Georuimtelijke data visualiseren in R
Oefeninstructies
- Gebruik
any()metduplicated()opnyc_income$tractom te controleren of elke rij innyc_incomeeen unieke tract-ID heeft. - Gebruik
any()metduplicated()opnyc_tracts$TRACTCEom te controleren of elke rij innyc_tractseen unieke tract-ID heeft. - Gebruik
all()opnyc_tracts$TRACTCE %in% nyc_income$tractom te controleren of alle tracts uitnyc_tractsinnyc_incomestaan. - Gebruik
all()opnyc_income$tract %in% nyc_tracts$TRACTCEom te controleren of alle tracts uitnyc_incomeinnyc_tractsstaan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Check for duplicates in nyc_income
# Check for duplicates in nyc_tracts
# Check nyc_tracts in nyc_income
# Check nyc_income in nyc_tracts