Learn R Programming

terra (version 1.7-83)

values: Cell values and geometry attributes

Description

Get the cell values of a SpatRaster or the attributes of a SpatVector.

By default all values returned are numeric. This is because a vector or matrix can only store one data type, and a SpatRaster may consist of multiple data types. However, if all layers have integer or logical values, the returned values also have that datatype.

Note that with values(x, dataframe=TRUE) and as.data.frame(x) the values returned match the type of each layer, and can be a mix of numeric, logical, integer, and factor.

Usage

# S4 method for SpatRaster
values(x, mat=TRUE, dataframe=FALSE, row=1, 
    nrows=nrow(x), col=1, ncols=ncol(x), na.rm=FALSE, ...)

# S4 method for SpatVector values(x, ...)

Value

matrix or data.frame

Arguments

x

SpatRaster or SpatVector

mat

logical. If TRUE, values are returned as a matrix instead of as a vector, except when dataframe is TRUE

dataframe

logical. If TRUE, values are returned as a data.frame instead of as a vector (also if matrix is TRUE)

row

positive integer. Row number to start from, should be between 1 and nrow(x)

nrows

positive integer. How many rows?

col

positive integer. Column number to start from, should be between 1 and ncol(x)

ncols

positive integer. How many columns? Default is the number of columns left after the start column

na.rm

logical. Remove NAs?

...

additional arguments passed to data.frame

Details

If x is a SpatRaster, and mat=FALSE, the values are returned as a vector. In cell-order by layer. If mat=TRUE, a matrix is returned in which the values of each layer are represented by a column (with ncell(x) rows). The values per layer are in cell-order, that is, from top-left, to top-right and then down by row. Use as.matrix(x, wide=TRUE) for an alternative matrix representation where the number of rows and columns matches that of x.

See Also

values<-, focalValues, as.data.frame

Examples

Run this code
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
r
x <- values(r)
x[3650:3655, ]
r[3650:3655]


ff <- system.file("ex/lux.shp", package="terra")
v <- vect(ff)
y <- values(v)
head(y)

Run the code above in your browser using DataLab