# summarize-generics: Summarize In terra: Spatial Data Analysis

## Description

Compute summary statistics for cells, either across layers or between layers (parallel summary).

The following summary methods are available for SpatRaster: `any, all, max, min, mean, median, prod, range, stdev, sum, which.min, which.max`. See `modal` to compute the mode and `app` to compute summary statistics that are not included here.

Because generic functions are used, the method applied is chosen based on the first argument: "`x`". This means that if `r` is a SpatRaster, `mean(r, 5)` will work, but `mean(5, r)` will not work.

The `mean` method has an argument "trim" that is ignored.

If `pop=TRUE` `stdev` computes the population standard deviation, computed as:

`f <- function(x) sqrt(sum((x-mean(x))^2) / length(x))`

This is different than the sample standard deviation returned by `sd` (which uses `n-1` as denominator).

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23``` ```## S4 method for signature 'SpatRaster' min(x, ..., na.rm=FALSE) ## S4 method for signature 'SpatRaster' max(x, ..., na.rm=FALSE) ## S4 method for signature 'SpatRaster' range(x, ..., na.rm=FALSE) ## S4 method for signature 'SpatRaster' mean(x, ..., trim=NA, na.rm=FALSE) ## S4 method for signature 'SpatRaster' median(x, na.rm=FALSE) ## S4 method for signature 'SpatRaster' stdev(x, ..., pop=TRUE, na.rm=FALSE) ## S4 method for signature 'SpatRaster' which.min(x) ## S4 method for signature 'SpatRaster' which.max(x) ```

## Arguments

 `x` SpatRaster `...` additional SpatRaster objects or numeric values; and arguments `filename`, `overwrite` and `wopt` as for `writeRaster` `na.rm` logical. If `TRUE`, `NA` values are ignored. If `FALSE`, `NA` is returned if `x` has any `NA` values `trim` ignored `pop` logical. If `TRUE`, the population standard deviation is computed. Otherwise the sample standard deviation is computed

## Value

SpatRaster

`app`, `Math-methods`, `modal`, `which.lyr`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19``` ```set.seed(0) r <- rast(nrows=10, ncols=10, nlyrs=3) values(r) <- runif(ncell(r) * nlyr(r)) x <- mean(r) # note how this returns one layer x <- sum(c(r, r[[2]]), 5) # and this returns three layers y <- sum(r, r[[2]], 5) max(r) max(r, 0.5) y <- stdev(r) # not the same as yy <- app(r, sd) z <- stdev(r, r*2) ```