split.ppp
Divide Point Pattern into Sub-patterns
Divides a point pattern into several sub-patterns, according to their marks, or according to any user-specified grouping.
- Keywords
- spatial
Usage
split.ppp(x, f = x$marks)
split(x, f) <- value
Arguments
- x
- A two-dimensional point pattern.
An object of class
"ppp"
. - f
- Factor determining the grouping.
- value
- List of point patterns.
Details
The function split.ppp
divides up the points of the point pattern x
into several sub-patterns according to the levels of the factor
f
. The result is a list of point patterns, one for each
level of f
.
If f
is present, it must be a factor, and its length
must equal the number of points in x
. The levels of f
determine the destination of each point in x
.
The i
th point of x
will be placed in the sub-pattern
split.ppp(x)$l
where l = f[i]
.
If f
is missing, then x
must be a multitype point pattern
(a marked point pattern whose marks vector is a factor).
Then the effect is that the points of each type
are separated into different point patterns.
The result of split.ppp
has class "splitppp"
and can be plotted using plot.splitppp
.
The assignment function split<-.ppp
updates the point pattern x
so that
it satisfies split(x, f) = value
. The argument value
is expected to be a list of point patterns, one for each level of
f
.
Splitting can also be undone by the function superimpose
.
Value
- The value of
split.ppp
is a list of point patterns. The components of the list are named by the levels off
.The assignment form
split<-.ppp
returns the updated point patternx
.
synopsis
split.ppp(x, f = x$marks)
See Also
Examples
# Multitype point pattern: separate into types
data(amacrine)
u <- split(amacrine)
# the following are equivalent:
amon <- amacrine[amacrine$marks == "on"]
amon <- split(amacrine)$on
# plot them
plot(split(amacrine))
# Scramble the 'on' cells
u$on <- runifpoint(amon$n, amon$window)
split(amacrine) <- u
# Point pattern with continuous marks
data(longleaf)
<testonly># smaller dataset
longleaf <- longleaf[seq(1, longleaf$n, by=80)]</testonly>
# cut the range of tree diameters into three intervals
long3 <- cut.ppp(longleaf, 3)
# now split them
long3split <- split(long3)
# Unmarked point pattern
data(swedishpines)
# cut & split according to nearest neighbour distance
f <- cut(nndist(swedishpines), 3)
u <- split(swedishpines, f)