[R-sig-Geo] Counting points within polygons

Agustin Lobo alobolistas at gmail.com
Tue Oct 18 16:24:33 CEST 2011


Hi!

Given a Sp Points DF and an Sp Polygons DF, I want to add a field of
number of points for each polygon
to the Sp Pol. DF table. This is what I'm doing (using objects from
the help page for sp::overlay()
(meuse is the Sp Points DF and srdf the Sp Pol. DF)

> delme3 <- overlay(meuse,srdf)
> delme3
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [38] 1 1 1 1 1 1 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3
 [75] 3 3 3 3 3 3 3 3 2 1 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2
[112] 2 2 2 2 2 2 3 2 2 2 2 2 1 2 2 2 2 1 1 2 2 1 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3
[149] 3 3 3 3 3 3 3
newdata <- data.frame(srdf at data,nppoints=table(delme3))
srdf2 <- srdf
srdf2 at data <- newdata

An alternative:
newdatap <- data.frame(meuse at data, nbp=rep(1,nrow(meuse)))
meuse2 <- meuse
meuse2 at data <- newdatap
delme4 <- overlay(meuse2[,13],srdf,fn=sum)
newdata <- data.frame(srdf at data,nppoints=delme4)
srdf2 <- srdf
srdf2 at data <- newdata

I wonder if there is a better way or, best, an standard R spatial
function doing that already.

Thanks!

Agus



More information about the R-sig-Geo mailing list