Comprobar que los datos coinciden
Forzar tus datos en la ranura data no funciona porque se pierde la correspondencia correcta entre filas y objetos espaciales. ¿Cómo añades los datos de ingresos a los datos de polígonos? La función merge() en sp está pensada precisamente para esto.
Puede que ya hayas visto merge() con data frames. sp::merge() tiene casi la misma estructura, pero le pasas un objeto Spatial*** y un data frame, y devuelve un nuevo objeto Spatial*** donde la ranura de datos ahora es una combinación (merge) de la ranura de datos original y el data frame. Para realizar este merge, necesitarás que tanto el objeto espacial como el data frame tengan una columna con identificadores (IDs) para hacer la correspondencia.
Tanto nyc_tracts como nyc_income tienen columnas con IDs de secciones censales (tracts), así que son buenos candidatos para fusionar ambos conjuntos de datos. Sin embargo, siempre es buena idea comprobar que los IDs propuestos son únicos y que existe una correspondencia para cada fila en ambos conjuntos.
Vamos a comprobarlo antes de continuar con el merge.
Este ejercicio forma parte del curso
Visualización de datos geoespaciales en R
Instrucciones del ejercicio
- Usa
any()conduplicated()sobrenyc_income$tractpara comprobar si cada fila denyc_incometiene un ID de tract único. - Usa
any()conduplicated()sobrenyc_tracts$TRACTCEpara comprobar si cada fila denyc_tractstiene un ID de tract único. - Usa
all()sobrenyc_tracts$TRACTCE %in% nyc_income$tractpara comprobar que todos los tracts denyc_tractsestán ennyc_income. - Usa
all()sobrenyc_income$tract %in% nyc_tracts$TRACTCEpara comprobar que todos los tracts denyc_incomeestán ennyc_tracts.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Check for duplicates in nyc_income
# Check for duplicates in nyc_tracts
# Check nyc_tracts in nyc_income
# Check nyc_income in nyc_tracts