subset.ppp(x, subset, window, drop, ...)
subset.ppp(x, subset, window)
x[subset]
x[subset,window]
x[subset] <- value
x[subset, window] <- value
"ppp"
."owin"
)
delineating a subset of the original observation window.[
.[
."ppp"
).window
is a subset of
x$window
. Nor does it check whether value
lies
inside x$window
. The function [.ppp
is a method for [
for the
class "ppp"
. It extracts a designated subset of a point pattern,
either by ``thinning''
(retaining/deleting some points of a point pattern)
or ``trimming'' (reducing the window of observation
to a smaller subregion and retaining only
those points which lie in the subregion) or both.
The pattern will be ``thinned''
if subset
is specified. The points designated by subset
will be retained. Here subset
can be a numeric vector
of positive indices (identifying the points to be retained),
a numeric vector of negative indices (identifying the points
to be deleted) or a logical vector of length equal to the number
of points in the point pattern x
. In the latter case,
the points (x$x[i], x$y[i])
for which
subset[i]=TRUE
will be retained, and the others
will be deleted.
The pattern will be ``trimmed''
if window
is specified. This should
be an object of class owin
specifying a window of observation
to which the point pattern x
will be
trimmed. The points of x
lying inside the new
window
will be retained.
Both ``thinning'' and ``trimming'' can be performed together.
The function [<-.ppp
is a method for [<-
for the
class "ppp"
. It replaces the designated
subset with the point pattern value
.
The subset of x
to be replaced is designated by
the arguments subset
and window
as above.
The replacement point pattern value
must lie inside the
window of the original pattern x
.
The ordering of points in x
will be preserved
if the replacement pattern value
has the same number of points
as the subset to be replaced. Otherwise the ordering is
unpredictable.
Use the function unmark
to remove marks from a
marked point pattern.
Use the function split.ppp
to select those points
in a marked point pattern which have a specified mark.
ppp.object
,
owin.object
,
unmark
,
split.ppp
,
cut.ppp
data(longleaf)
# Longleaf pines data
plot(longleaf)
<testonly>longleaf <- longleaf[seq(1,longleaf$n,by=10)]</testonly>
# adult trees defined to have diameter at least 30 cm
adult <- (longleaf$marks >= 30)
longadult <- longleaf[adult]
# equivalent to: longadult <- subset.ppp(longleaf, subset=adult)
plot(longadult)
# note that the marks are still retained.
# Use unmark(longadult) to remove the marks
# New Zealand trees data
data(nztrees)
plot(nztrees) # plot shows a line of trees at the far right
abline(v=148, lty=2) # cut along this line
nzw <- owin(c(0,148),c(0,95)) # the subwindow
# trim dataset to this subwindow
nzsub <- nztrees[,nzw]
# equivalent to: nzsub <- subset.ppp(nztrees, window=nzw)
plot(nzsub)
# Redwood data
data(redwood)
plot(redwood)
# Random thinning: delete 60\% of data
retain <- (runif(redwood$n) < 0.4)
thinred <- redwood[retain]
plot(thinred)
# Scramble 60\% of data
modif <- (runif(redwood$n) < 0.6)
scramble <- function(x) { runifpoint(x$n, x$window) }
redwood[modif] <- scramble(redwood[modif])
# Lansing woods data - multitype points
data(lansing)
<testonly>lansing <- lansing[seq(1, lansing$n, length=100)]</testonly>
# hickory trees only
hick <- lansing[lansing$marks == "hickory", ]
# still a marked pattern -- remove marks
hick <- unmark(hick)
# scramble the hickories
lansing[lansing$marks == "hickory"] <- scramble(hick)
Run the code above in your browser using DataLab