
Create, modify, and delete cell values/layers/attributes of Spat* objects
Source: R/mutate-Spat.R
mutate.Spat.Rdmutate() adds new layers/attributes and preserves existing ones on a
Spat* object. transmute() adds new layers/attributes and drops existing
ones. New variables overwrite existing variables of the same name. Variables
can be removed by setting their value to NULL.
Arguments
- .data
A
SpatRastercreated withterra::rast()or aSpatVectorcreated withterra::vect().- ...
<
data-masking> Name-value pairs. The name gives the name of the layer/attribute in the output.
terra equivalent
Some terra methods for modifying cell values:
terra::ifel(), terra::classify(), terra::clamp(), terra::app(),
terra::lapp(), terra::tapp()
Methods
Implementation of the generic dplyr::mutate(), dplyr::transmute()
functions.
SpatRaster
Add new layers and preserves existing ones. The result is a
SpatRaster with the same extent, resolution and crs than .data. Only the
values (and possibly the number) of layers is modified.
transmute() would keep only the layers created with ....
SpatVector
The result is a SpatVector with the modified (and possibly renamed)
attributes on the function call.
transmute() would keep only the attributes created with ....
See also
dplyr::mutate(), dplyr::transmute() methods.
terra provides several ways to modify Spat* objects:
Other single table verbs:
arrange.SpatVector(),
filter.Spat,
rename.Spat,
select.Spat,
slice.Spat,
summarise.SpatVector()
Other dplyr verbs that operate on columns:
glimpse.Spat,
pull.Spat,
relocate.Spat,
rename.Spat,
select.Spat
Other dplyr methods:
arrange.SpatVector(),
bind_cols.SpatVector,
bind_rows.SpatVector,
count.SpatVector(),
distinct.SpatVector(),
filter-joins.SpatVector,
filter.Spat,
glimpse.Spat,
group-by.SpatVector,
mutate-joins.SpatVector,
pull.Spat,
relocate.Spat,
rename.Spat,
rowwise.SpatVector(),
select.Spat,
slice.Spat,
summarise.SpatVector()
Examples
library(terra)
# SpatRaster method
f <- system.file("extdata/cyl_temp.tif", package = "tidyterra")
spatrast <- rast(f)
mod <- spatrast %>%
mutate(exp_lyr1 = exp(tavg_04 / 10)) %>%
select(tavg_04, exp_lyr1)
mod
#> class : SpatRaster
#> size : 87, 118, 2 (nrow, ncol, nlyr)
#> resolution : 3881.255, 3881.255 (x, y)
#> extent : -612335.4, -154347.3, 4283018, 4620687 (xmin, xmax, ymin, ymax)
#> coord. ref. : World_Robinson
#> source(s) : memory
#> names : tavg_04, exp_lyr1
#> min values : 1.885463, 1.207493
#> max values : 13.283829, 3.774934
plot(mod)
# SpatVector method
f <- system.file("extdata/cyl.gpkg", package = "tidyterra")
v <- vect(f)
v %>%
mutate(cpro2 = paste0(cpro, "-CyL")) %>%
select(cpro, cpro2)
#> class : SpatVector
#> geometry : polygons
#> dimensions : 9, 2 (geometries, attributes)
#> extent : 2892687, 3341372, 2017622, 2361600 (xmin, xmax, ymin, ymax)
#> source : cyl.gpkg
#> coord. ref. : ETRS89-extended / LAEA Europe (EPSG:3035)
#> names : cpro cpro2
#> type : <chr> <chr>
#> values : 05 05-CyL
#> 09 09-CyL
#> 24 24-CyL