subset function

Subset a SpatRaster or a SpatVector

Subset a SpatRaster or a SpatVector

Select a subset of layers from a SpatRaster or select a subset of records (row) and/or variables (columns) from a SpatVector.

## S4 method for signature 'SpatRaster' subset(x, subset, negate=FALSE, NSE=FALSE, filename="", overwrite=FALSE, ...) ## S4 method for signature 'SpatVector' subset(x, subset, select, drop=FALSE, NSE=FALSE)

Arguments

  • x: SpatRaster or SpatVector

  • subset: if x is a SpatRaster: integer or character to select layers

    if x is a SpatVector: logical expression indicating the rows to keep (missing values are taken as FALSE)

  • select: expression, indicating columns to select

  • negate: logical. If TRUE all layers that are not in the subset are selected

  • NSE: logical. If TRUE, non-standard evaluation (the use of unquoted variable names) is allowed. Set this to FALSE when calling subset from a function

  • drop: logical. If TRUE, the geometries will be dropped, and a data.frame is returned

  • filename: character. Output filename

  • overwrite: logical. If TRUE, filename is overwritten

  • ...: additional arguments for writing files as in writeRaster

Returns

if x is a SpatRaster: SpatRaster

if x is a SpatVector: SpatVector or, if drop=TRUE, a data.frame.

Examples

### SpatRaster s <- rast(system.file("ex/logo.tif", package="terra")) subset(s, 2:3) subset(s, c(3,2,3,1)) #equivalent to s[[ c(3,2,3,1) ]] s[[c("red", "green")]] s$red # expression based (partial) matching of names with single brackets s["re"] s["^re"] # not with double brackets # s[["re"]] ### SpatVector v <- vect(system.file("ex/lux.shp", package="terra")) subset(v, v$NAME_1 == "Diekirch", c("NAME_1", "NAME_2")) subset(v, NAME_1 == "Diekirch", c(NAME_1, NAME_2), NSE=TRUE) # or like this v[2:3,] v[1:2, 2:3] v[1:2, c("NAME_1", "NAME_2")]
  • Maintainer: Robert J. Hijmans
  • License: GPL (>= 3)
  • Last published: 2025-02-26