J'ai deux classes partageant le même CRS (Latitute et Longitude):
bolognaQuartieriMap
: unSpatialPolygonDataFrame
contenant des données d'un arrondissement de la ville.crashPoints
: unSpatialPointsDataFrame
contenant des données d'accidents.
Ils sont bien tracés en utilisant:
plot(bolognaQuartieriMap)
title("Crash per quartiere")
plot(crashPoints, col="red",add=TRUE)
Ce dont j'ai besoin, c'est d'obtenir le nombre de points ( crashPoints
) dans chaque polygone qui le constitue bolognaQuartieriMap
. On m'a suggéré d'utiliser over()
mais je n'ai pas réussi.
Je veux laisser une autre option. Vous pouvez réaliser la tâche en utilisant
poly.counts()
dans leGISTools
package. En utilisant les exemples de données par rcs, vous pouvez effectuer les opérations suivantes. Si vous regardiez la fonction, vous vous rendriez compte que la fonction est écrite commecolSums(gContains(polys, pts, byid = TRUE))
. Donc, vous pouvez simplement utilisergContains()
dans lergeos
package etcolSums()
.Ou
Et le résultat est:
la source
Vous pouvez obtenir le même résultat en utilisant le
sf
package. Vérifiez le code reproductible et commenté ci-dessous. Le packagesf
est utilisé pour gérer les objets spatiaux comme de simples objets d'entités. Dans cette réponse, le packageraster
est utilisé uniquement pour télécharger des exemples de données de polygone et le packagedplyr
pour la transformation des données à la fin.la source