
Last chance! 50% off unlimited learning
Sale ends in
## S3 method for class 'ppp':
split(x, f = marks(x), drop=FALSE, un=NULL, ...)
## S3 method for class 'ppp':
split(x, f = marks(x), drop=FALSE, un=missing(f), ...) <- value
"ppp"
.split.ppp
is a list of point patterns.
The components of the list are named by the levels of f
.
The list also has the class "splitppp"
. The assignment form split<-.ppp
returns the updated
point pattern x
.
split.ppp
divides up the points of the point pattern x
into several sub-patterns according to the values of f
.
The result is a list of point patterns.
The argument f
may be
x
.
The levels off
determine the destination of each point inx
.
Thei
th point ofx
will be placed in the sub-patternsplit.ppp(x)$l
wherel = f[i]
."im"
) with factor values.
The pixel value off
at each point ofx
will be used as the classifying variable."tess"
).
Each point ofx
will be classified according to
the tile of the tessellation into which it falls.marks(x)
is a data frame. This column should
be a factor.f
is missing, then it will be determined by the
marks of the point pattern. The pattern x
can be either
f
is taken to be the marks vector.
The effect is that the points of each type
are separated into different point patterns.f
. Some of the sub-patterns created by the split
may be empty. If drop=TRUE
, then empty sub-patterns will
be deleted from the list. If drop=FALSE
then they are retained.
The argument un
determines how to handle marks
in the case where x
is a marked point pattern.
If un=TRUE
then the marks of the
points will be discarded when they are split into groups,
while if un=FALSE
then the marks will be retained.
If f
and un
are both missing,
then the default is un=TRUE
for multitype point patterns
and un=FALSE
for marked point patterns with a data frame of
marks.
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, drop, un) = value
. The argument value
is expected to be a list of point patterns, one for each level of
f
. These point patterns are expected to be compatible with the
type of data in the original pattern x
.
Splitting can also be undone by the function superimpose
.
cut.ppp
,
plot.splitppp
,
superimpose
,
im
,
tess
,
ppp.object
# (1) Splitting by marks
# Multitype point pattern: separate into types
data(amacrine)
u <- split(amacrine)
# plot them
plot(split(amacrine))
# the following are equivalent:
amon <- split(amacrine)$on
amon <- unmark(amacrine[amacrine$marks == "on"])
# the following are equivalent:
amon <- split(amacrine, un=FALSE)$on
amon <- amacrine[amacrine$marks == "on"]
# Scramble the locations of the 'on' cells
u <- split(amacrine)
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
# using cut.ppp
long3 <- cut(longleaf, breaks=3)
# now split them
long3split <- split(long3)
# (2) Splitting by a factor
# Unmarked point pattern
data(swedishpines)
# cut & split according to nearest neighbour distance
f <- cut(nndist(swedishpines), 3)
u <- split(swedishpines, f)
# (3) Splitting over a tessellation
tes <- tess(xgrid=seq(0,96,length=5),ygrid=seq(0,100,length=5))
v <- split(swedishpines, tes)
Run the code above in your browser using DataLab