[R-sig-Geo] sum number of events by covariate using applynbd

Rolf Turner r.turner at auckland.ac.nz
Sat May 12 03:23:34 CEST 2012



PLEASE!!!  Do NOT confuse "covariate" with "mark".  They are very
different concepts.  You want to "segregate by ***mark***" (etc.)
NOT by covariate.  The latter makes no sense at all.

As to how to accomplish the desired task, see below.

On 12/05/12 09:23, Wall, Wade A ERDC-RDE-CERL-IL wrote:
> Hi all,
>
> I am wanting to sum the number of events within r=5 distance of a set of points and segregate by a covariate. I want to use the function applynbd, but not sure how to write a custom function to do this.
>
> For example, I have a ppp object, LS.ppp. LS.ppp$marks has two levels, M and F.
>
> For each point in the data set, I want to assess the sum of all points within r=5 that are M and the sum of all points that are female.
>
> The results would be a dataframe  of N rows, with N = the number of points in the ppp object.
>
> The two columns would be number of females, and number of males.
>
> I think this could be done using dist() and looping over it for each row and then matching with a dataframe, but that seems to be a clunky way of doing it.
>
> Does anyone know how to do this? I see how to use applynbd to get the sum of the points, but not the sum by covariate.
>
> Thanks for any information.

This is actually fairly easy to do with applynbd() but is even easier to do
using markstat():

DF <- as.data.frame(t(markstat(LS.ppp,fun=table,R=5,exclude=TRUE)))

If you *really* want to use applynbd() directly ("just because you can")
then do:

foo <- function(Y,current,dists,dranks,...){table(marks(Y))}
DF <- as.data.frame(t(applynbd(LS.ppp,foo,R=5,exclude=TRUE)))

Note:  I'm using "exclude=TRUE" because I presume that you do not
want to count the point itself when tabulating the marks of points within
distance 5 of that point.  If you *do* want to count the point itself then
remove reference to "exclude" or set exclude=FALSE (the default).

     cheers,

         Rolf Turner



More information about the R-sig-Geo mailing list