Classify Points in a Point Pattern
Classifies the points in a point pattern into distinct types according to the numerical marks in the pattern, or according to another variable.
## S3 method for class 'ppp': cut(x, z=marks(x), ...)
- A two-dimensional point pattern.
An object of class
- Data determining the classification. A numeric vector, a factor, a pixel image, a tessellation, or a string giving the name of a column of marks.
- Arguments passed to
cut.default. They determine the breakpoints for the mapping from numerical values in
zto factor values in the output. See
This function has the effect of classifying each point in the point
x into one of several possible types. The
classification is based on the dataset
z, which may be either
- a factor (of length equal to the number of points in
z) determining the classification of each point in
x. Levels of the factor determine the classification.
- a numeric vector (of length equal to the number of points in
z). The range of values of
zwill be divided into bands (the number of bands is determined by
zwill be converted to a factor using
- a pixel image (object of class
"im"). The value of
zat each point of
xwill be used as the classifying variable.
- a tessellation (object of class
tess). Each point of
xwill be classified according to the tile of the tessellation into which it falls.
- a character string, giving the name of one of the columns
marks(x), if this is a data frame.
zto be the vector of marks in
x(or the first column in the data frame of marks of
x, if it is a data frame). If the marks are numeric, then the range of values of the numerical marks is divided into several intervals, and each interval is associated with a level of a factor. The result is a marked point pattern, with the same window and point locations as
x, but with the numeric mark of each point discretised by replacing it by the factor level. This is a convenient way to transform a marked point pattern which has numeric marks into a multitype point pattern, for example to plot it or analyse it. See the examples.
To select some points from a point pattern, use the subset operator
- A multitype point pattern, that is, a point pattern object
"ppp") with a
marksvector that is a factor.
# (1) cutting based on numeric marks of point pattern data(longleaf) # Longleaf Pines data # the marks are positive real numbers indicating tree diameters. <testonly># smaller dataset longleaf <- longleaf[seq(1, longleaf$n, by=80)]</testonly> plot(longleaf) # cut the range of tree diameters into three intervals long3 <- cut(longleaf, breaks=3) plot(long3) # adult trees defined to have diameter at least 30 cm long2 <- cut(longleaf, breaks=c(0,30,100), labels=c("Sapling", "Adult")) plot(long2) plot(long2, cols=c("green","blue")) # (2) cutting based on another numeric vector # Divide Swedish Pines data into 3 classes # according to nearest neighbour distance data(swedishpines) plot(cut(swedishpines, nndist(swedishpines), breaks=3)) # (3) cutting based on tessellation # Divide Swedish Pines study region into a 4 x 4 grid of rectangles # and classify points accordingly tes <- tess(xgrid=seq(0,96,length=5),ygrid=seq(0,100,length=5)) plot(cut(swedishpines, tes)) plot(tes, lty=2, add=TRUE) # (4) multivariate marks data(finpines) cut(finpines, "height", breaks=4)