Verificando se os dados vão coincidir
Forçar seus dados para dentro do slot data não funciona porque você perde a correspondência correta entre as linhas e os objetos espaciais. Como adicionar os dados de renda aos dados de polígonos? A função merge() em sp foi feita exatamente para isso.
Você talvez já tenha visto merge() com data frames. sp::merge() tem praticamente a mesma estrutura, mas você passa um objeto Spatial*** e um data frame, e ela retorna um novo objeto Spatial*** em que o slot de dados agora é a junção do slot de dados original com o data frame. Para fazer essa junção, é necessário que tanto o objeto espacial quanto o data frame tenham uma coluna com IDs para fazer a correspondência.
Tanto nyc_tracts quanto nyc_income têm colunas com IDs de setores censitários (tracts), então são ótimos candidatos para mesclar os dois conjuntos de dados. No entanto, sempre vale a pena verificar se os IDs propostos são únicos e se há correspondência para cada linha em ambos os conjuntos de dados.
Vamos verificar isso antes de seguir para o merge.
Este exercício faz parte do curso
Visualizando dados geoespaciais em R
Instruções do exercício
- Use
any()comduplicated()emnyc_income$tractpara verificar se cada linha emnyc_incometem um ID de setor único. - Use
any()comduplicated()emnyc_tracts$TRACTCEpara verificar se cada linha emnyc_tractstem um ID de setor único. - Use
all()emnyc_tracts$TRACTCE %in% nyc_income$tractpara verificar se todos os setores denyc_tractsestão emnyc_income. - Use
all()emnyc_income$tract %in% nyc_tracts$TRACTCEpara verificar se todos os setores denyc_incomeestão emnyc_tracts.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Check for duplicates in nyc_income
# Check for duplicates in nyc_tracts
# Check nyc_tracts in nyc_income
# Check nyc_income in nyc_tracts