split.ppx: Divide Multidimensional Point Pattern into Sub-patterns

Description Usage Arguments Details Value Author(s) See Also Examples


Divides a multidimensional point pattern into several sub-patterns, according to their marks, or according to any user-specified grouping.


  ## S3 method for class 'ppx'
split(x, f = marks(x), drop=FALSE, un=NULL, ...)



A multi-dimensional point pattern. An object of class "ppx".


Data determining the grouping. Either a factor, or the name of one of the columns of marks.


Logical. Determines whether empty groups will be deleted.


Logical. Determines whether the resulting subpatterns will be unmarked (i.e. whether marks will be removed from the points in each subpattern).


Other arguments are ignored.


The generic command split allows a dataset to be separated into subsets according to the value of a grouping variable.

The function split.ppx is a method for the generic split for the class "ppx" of multidimensional point patterns. It 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

  • a factor, of length equal to the number of points in x. The levels of f determine the destination of each point in x. The ith point of x will be placed in the sub-pattern split.ppx(x)$l where l = f[i].

  • a character string, matching the name of one of the columns of marks, if marks(x) is a data frame. This column should be a factor.

If f is missing, then it will be determined by the marks of the point pattern. The pattern x can be either

  • a multitype point pattern (a marked point pattern whose marks vector is a factor). Then f is taken to be the marks vector. The effect is that the points of each type are separated into different point patterns.

  • a marked point pattern with a data frame or hyperframe of marks, containing at least one column that is a factor. The first such column will be used to determine the splitting factor 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.ppx has class "splitppx" and "anylist". There are methods for print, summary and plot.


A list of point patterns. The components of the list are named by the levels of f. The list also has the class "splitppx" and "anylist".



and \rolf

See Also

ppx, plot.anylist


   df <- data.frame(x=runif(4),y=runif(4),t=runif(4),
                    age=rep(c("old", "new"), 2),
   X <- ppx(data=df, coord.type=c("s","s","t","m","m"))

Search within the spatstat package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.