Learn R Programming

terra (version 1.8-86)

rapp: Range-apply

Description

Apply a function to a range of the layers of a SpatRaster that varies by cell. The range is specified for each cell with one or two SpatRasters (arguments first and last). For either first or last you can use a single number instead.

You cannot use single numbers for both first and last because in that case you could use app or Summary-methods, perhaps subsetting the layers of a SpatRaster.

See selectRange to create a new SpatRaster by extracting one or more values starting at a cell-varying layer.

Usage

# S4 method for SpatRaster
rapp(x, first, last, fun, ..., allyrs=FALSE, fill=NA, 
        clamp=FALSE, circular=FALSE, filename="", overwrite=FALSE, wopt=list())

Arguments

Value

SpatRaster

See Also

selectRange, app, Summary-methods, lapp, tapp

Examples

Run this code
r <- rast(ncols=9, nrows=9)
values(r) <- 1:ncell(r)
s <- c(r, r, r, r, r, r)
s <- s * 1:6
s[1:2] <- NA
start <- end <- rast(r)
start[] <- 1:3
end[]   <- 4:6
a <- rapp(s, start, end, fun="mean")
b <- rapp(s, start, 2, fun="mean")

# cumsum from start to nlyr(x). return all layers
r <- rapp(s, start, nlyr(s), cumsum, allyrs=TRUE, fill=0)
# return only the final value
rr <- rapp(s, start, nlyr(s), function(i) max(cumsum(i)))

Run the code above in your browser using DataLab