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

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to