IniziaInizia gratis

Verificare la corrispondenza dei dati

Forzare i tuoi dati nello slot data non funziona perché perdi la corrispondenza corretta tra righe e oggetti spaziali. Come puoi aggiungere i dati sul reddito ai dati poligonali? La funzione merge() in sp è pensata proprio per questo scopo.

Probabilmente hai già visto merge() con i data frame. sp::merge() ha quasi la stessa struttura, ma gli passi un oggetto Spatial*** e un data frame e restituisce un nuovo oggetto Spatial*** in cui lo slot data è ora l’unione tra lo slot data originale e il data frame. Per effettuare questa unione, è necessario che sia l’oggetto spaziale sia il data frame abbiano una colonna con gli ID su cui effettuare il match.

Sia nyc_tracts sia nyc_income hanno colonne con gli ID dei census tract, quindi sono ottimi candidati per unire i due insiemi di dati. Tuttavia, è sempre una buona idea controllare che gli ID proposti siano univoci e che esista una corrispondenza per ogni riga in entrambi i dataset.

Facciamo queste verifiche prima di procedere con il merge.

Questo esercizio fa parte del corso

Visualizzare dati geospaziali in R

Visualizza il corso

Istruzioni dell'esercizio

  • Usa any() con duplicated() su nyc_income$tract per verificare se ogni riga in nyc_income ha un ID di tract univoco.
  • Usa any() con duplicated() su nyc_tracts$TRACTCE per verificare se ogni riga in nyc_tracts ha un ID di tract univoco.
  • Usa all() su nyc_tracts$TRACTCE %in% nyc_income$tract per verificare che tutti i tract di nyc_tracts siano presenti in nyc_income.
  • Usa all() su nyc_income$tract %in% nyc_tracts$TRACTCE per verificare che tutti i tract di nyc_income siano presenti in nyc_tracts.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Check for duplicates in nyc_income


# Check for duplicates in nyc_tracts


# Check nyc_tracts in nyc_income


# Check nyc_income in nyc_tracts
Modifica ed esegui il codice