markstat: Summarise Marks in Every Neighbourhood in a Point Pattern

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/applynbd.R


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.


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.


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).




See Also

applynbd, marktable, ppp.object, apply


  trees <- longleaf

  # 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)

spatstat documentation built on May 20, 2017, 5:36 a.m.
Search within the spatstat package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at

Please suggest features or report bugs in the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.