# replace cell values

`subst.Rd`

Substitute(replace) cell values of a SpatRaster with a new value. See `classify`

for more complex/flexible replacement.

## Usage

```
# S4 method for class 'SpatRaster'
subst(x, from, to, others=NULL, raw=FALSE, filename="", ...)
```

## Arguments

- x
SpatRaster

- from
numeric value(s). Normally a vector of the same length as `to`. If

`x`

has multiple layers, it can also be a matrix of numeric value(s) where`nrow(x) == length(to)`

. In that case the output has a single layer, with values based on the combination of the values of the input layers- to
numeric value(s). Normally a vector of the same length as `from`. If

`x`

has a single layer, it can also be a matrix of numeric value(s) where`nrow(x) == length(from)`

. In that case the output has multiple layers, one for each column in`to`

- others
numeric. If not

`NULL`

all values that are not matched are set to this value. Otherwise they retain their original value.- raw
logical. If

`TRUE`

, the values in from and to are the raw cell values, not the categorical labels. Only relevant if`is.factor(x)`

- filename
character. Output filename

- ...
Additional arguments for writing files as in

`writeRaster`

## Examples

```
r <- rast(ncols=5, nrows=5, xmin=0, xmax=1, ymin=0, ymax=1, crs="")
r <- init(r, 1:6)
x <- subst(r, 3, 7)
x <- subst(r, 2:3, NA)
x <- subst(x, NA, 10)
# multiple output layers
z <- subst(r, 2:3, cbind(20,30))
# multiple input layers
rr <- c(r, r+1, r+2)
m <- rbind(c(1:3), c(3:5))
zz <- subst(rr, m, c(100, 200))
```