This algorithm visits each point in the point pattern X,
inspects all the neighbouring points within a radius R of the current
point (or the N nearest neighbours of the current point),
and compiles a frequency table of the marks attached to the
neighbours.
The dataset X must be a multitype point pattern, that is,
marks(X) must be a factor.
If collapse=FALSE (the default),
the result is a two-dimensional contingency table with one row for
each point in the pattern, and one column for each possible mark
value. The [i,j] entry in the table gives the number of
neighbours of point i that have mark j.
If collapse=TRUE, this contingency table is aggregated
according to the type of point, so that the result is a contingency
table with one row and one column for each possible mark value.
The [i,j] entry in the table gives the number of
neighbours of a point with mark i that have mark j.
To perform more complicated calculations on the neighbours of every
point, use markstat or applynbd.