Eu tenho duas classes que compartilham o mesmo CRS (Latitute e Longitude):
bolognaQuartieriMap
: umSpatialPolygonDataFrame
dado contendo os municípios de uma cidade.crashPoints
: umSpatialPointsDataFrame
contendo dados de acidentes.
Eles são bem plotados usando:
plot(bolognaQuartieriMap)
title("Crash per quartiere")
plot(crashPoints, col="red",add=TRUE)
O que eu preciso é obter o número de pontos ( crashPoints
) em cada polígono que constitui bolognaQuartieriMap
. Foi-me sugerido o uso, over()
mas não obtive sucesso.
Eu quero deixar outra opção. Você pode realizar a tarefa usando
poly.counts()
oGISTools
pacote. Usando os dados de amostra por rcs, você pode fazer o seguinte. Se você olhar para a função, perceberá que a função está escrita comocolSums(gContains(polys, pts, byid = TRUE))
. Então, você pode apenas usargContains()
norgeos
pacote ecolSums()
.Ou
E o resultado é:
fonte
Você pode conseguir o mesmo usando o
sf
pacote. Verifique o código reproduzível e comentado abaixo. O pacotesf
é usado para manipular objetos espaciais como objetos de recursos simples. Nesta resposta, o pacoteraster
é usado apenas para baixar dados de polígono de exemplo e o pacotedplyr
para transformação de dados no final.fonte