Tengo dos clases que comparten el mismo CRS (Latitute y Longitude):
bolognaQuartieriMap
:SpatialPolygonDataFrame
datos que contienen los municipios de una ciudad.crashPoints
: a queSpatialPointsDataFrame
contiene datos de accidentes.
Están bien trazados usando:
plot(bolognaQuartieriMap)
title("Crash per quartiere")
plot(crashPoints, col="red",add=TRUE)
Lo que necesito es obtener el número de puntos ( crashPoints
) en cada polígono que constituyen bolognaQuartieriMap
. Me sugirieron usar over()
pero no tuve éxito.
Quiero dejar otra opción Puede lograr la tarea utilizando
poly.counts()
en elGISTools
paquete. Usando los datos de muestra de rcs, puede hacer lo siguiente. Si analizara la función, se daría cuenta de que la función está escrita comocolSums(gContains(polys, pts, byid = TRUE))
. Por lo tanto, puede usargContains()
en elrgeos
paquete ycolSums()
.O
Y el resultado es:
fuente
Puede lograr lo mismo usando el
sf
paquete. Verifique el código reproducible y comentado a continuación. El paquetesf
se usa para manejar objetos espaciales como objetos de características simples. En esta respuesta, el paqueteraster
se usa solo para descargar datos de polígonos de ejemplo y el paquetedplyr
para la transformación de datos al final.fuente