Saya memiliki dua kelas berbagi CRS yang sama (Latitute dan Longitude):
bolognaQuartieriMap
: aSpatialPolygonDataFrame
berisi data kota borough.crashPoints
: aSpatialPointsDataFrame
berisi data kecelakaan.
Mereka diplot dengan baik menggunakan:
plot(bolognaQuartieriMap)
title("Crash per quartiere")
plot(crashPoints, col="red",add=TRUE)
Yang saya butuhkan adalah untuk mendapatkan jumlah poin ( crashPoints
) di setiap poligon yang membentuk bolognaQuartieriMap
. Saya disarankan untuk menggunakan over()
tetapi saya tidak berhasil.
Saya ingin meninggalkan opsi lain. Anda dapat mencapai tugas menggunakan
poly.counts()
dalamGISTools
paket. Menggunakan data sampel oleh rcs, Anda dapat melakukan hal berikut. Jika Anda melihat ke dalam fungsi, Anda akan menyadari bahwa fungsi tersebut ditulis sebagaicolSums(gContains(polys, pts, byid = TRUE))
. Jadi, Anda bisa menggunakangContains()
dalamrgeos
paket dancolSums()
.Atau
Dan hasilnya adalah:
sumber
Anda dapat mencapai hal yang sama menggunakan
sf
paket. Periksa kode yang dapat direproduksi dan dikomentari di bawah. Paketsf
ini digunakan untuk menangani objek spasial sebagai objek fitur sederhana. Dalam jawaban ini paketraster
hanya digunakan untuk mengunduh contoh data poligon dan paketdplyr
untuk transformasi data di bagian akhir.sumber