# markstat

##### Summarise Marks in Every Neighbourhood in a Point Pattern

Visit each point in a point pattern, find the neighbouring points, and summarise their marks

- Keywords
- spatial, programming

##### Usage

`markstat(X, fun, N, R, ...)`

##### Arguments

- X
- A marked point pattern.
An object of class
`"ppp"`

. - fun
- Function to be applied to the vector of marks.
- N
- 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. This argument is incompatible with`R`

. - R
- 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. This argument is incompatible wi - ...
- extra arguments passed to the function
`fun`

. They must be given in the form`name=value`

.

##### Details

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 **Value** above.

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`

.

##### Value

- Similar to the result of
`apply`

. if each call to`fun`

returns a single numeric value, the result is a vector of dimension`X$n`

, 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`X$n`

.

##### See Also

##### Examples

```
data(longleaf)
<testonly>longleaf <- longleaf[seq(1, longleaf$n, by=6)]</testonly>
# average diameter of 5 closest neighbours of each tree
md <- markstat(longleaf, mean, N=5)
# range of diameters of trees within 10 metre radius
rd <- markstat(longleaf, range, R=10)
```

*Documentation reproduced from package spatstat, version 1.18-1, License: GPL (>= 2)*