Visit each point in a point pattern, find the neighbouring points, and summarise their marks
markstat(X, fun, N=NULL, R=NULL, …)A marked point pattern.
An object of class "ppp".
Function to be applied to the vector of marks.
Integer. If this argument is present,
the neighbourhood of a point of X is defined to consist of the
N points of X which are closest to it.
Nonnegative numeric value. If this argument is present,
the neighbourhood of a point of X is defined to consist of
all points of X which lie within a distance R
of it.
extra arguments passed to the function fun.
They must be given in the form name=value.
Similar to the result of apply.
if each call to fun returns a single numeric value,
the result is a vector of dimension npoints(X), the number of points
in X.
If each call to fun returns a vector of the same length
m, then the result is a matrix of dimensions c(m,n);
note the transposition of the indices, as usual for the family of
apply functions.
If the calls to fun return vectors of different lengths,
the result is a list of length npoints(X).
This algorithm visits each point in the point pattern X,
determines which points of X are ``neighbours'' of the current
point, extracts the marks of these neighbouring points,
applies the function fun to the marks,
and collects the value or values returned by fun.
The definition of ``neighbours'' depends on the arguments
N and R, exactly one of which must be given.
If N is given, then the neighbours of the current
point are the N points of X which are closest to
the current point (including the current point itself).
If R is given, then the neighbourhood of the current point
consists of all points of X which lie closer than a distance R
from the current point.
Each point of X is visited; the neighbourhood
of the current point is determined; the marks of these points
are extracted as a vector v; then the function
fun is called as:
fun(v, …)
where … are the arguments passed from the call to
markstat.
The results of each call to fun are collected and returned
according to the usual rules for apply and its
relatives. See the section on Value.
This function is just a convenient wrapper for a common use of the
function applynbd. For more complex tasks,
use applynbd.
To simply tabulate the marks in every R-neighbourhood, use
marktable.
# NOT RUN {
trees <- longleaf
# }
# NOT RUN {
# average diameter of 5 closest neighbours of each tree
md <- markstat(trees, mean, N=5)
# range of diameters of trees within 10 metre radius
rd <- markstat(trees, range, R=10)
# }
Run the code above in your browser using DataLab