# aggregate-methods: Compute summary statistics of subsets of vector-like objects In S4Vectors: S4 implementation of vectors and lists

## Description

The S4Vectors package defines `aggregate` methods for Vector, Rle, and List objects.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```## S4 method for signature 'Vector' aggregate(x, by, FUN, start=NULL, end=NULL, width=NULL, frequency=NULL, delta=NULL, ..., simplify=TRUE) ## S4 method for signature 'Rle' aggregate(x, by, FUN, start=NULL, end=NULL, width=NULL, frequency=NULL, delta=NULL, ..., simplify=TRUE) ## S4 method for signature 'List' aggregate(x, by, FUN, start=NULL, end=NULL, width=NULL, frequency=NULL, delta=NULL, ..., simplify=TRUE) ```

## Arguments

 `x` A Vector, Rle, or List object. `by` An object with `start`, `end`, and `width` methods. If `x` is a List object, the `by` parameter can be a RangesList object to aggregate within the list elements rather than across them. When `by` is a RangesList object, the output is either a SimpleAtomicList object, if possible, or a SimpleList object, if not. `FUN` The function, found via `match.fun`, to be applied to each subset of `x`. `start, end, width` The start, end, and width of the subsets. If `by` is missing, then two of the three must be supplied and have the same length. `frequency, delta` Optional arguments that specify the sampling frequency and increment within the subsets (in the same fashion as `window` from the stats package does). `...` Optional arguments to `FUN`. `simplify` A logical value specifying whether the result should be simplified to a vector or matrix if possible.

## Details

Subsets of `x` can be specified either via the `by` argument or via the `start`, `end`, `width`, `frequency`, and `delta` arguments.

For example, if `start` and `end` are specified, then:

 `1` ``` aggregate(x, FUN=FUN, start=start, end=end, ..., simplify=simplify) ```

is equivalent to:

 ```1 2``` ``` sapply(seq_along(start), function(i) FUN(x[start[i]:end[i]], ...), simplify=simplify) ```

(replace `x[start[i]:end[i]]` with 2D-style subsetting `x[start[i]:end[i], ]` if `x` is a DataFrame object).

• The `aggregate` function in the stats package.

• Vector, Rle, List, and DataFrame objects.

• The `start`, `end`, and `width` generic functions defined in the BiocGenerics package.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12``` ```x <- Rle(10:2, 1:9) aggregate(x, x > 4, mean) aggregate(x, FUN=mean, start=1:26, width=20) ## Note that aggregate() works on a DataFrame object the same way it ## works on an ordinary data frame: aggregate(DataFrame(state.x77), list(Region=state.region), mean) aggregate(weight ~ feed, data=DataFrame(chickwts), mean) library(IRanges) by <- IRanges(start=1:26, width=20, names=LETTERS) aggregate(x, by, is.unsorted) ```

S4Vectors documentation built on Sept. 8, 2017, 2:02 a.m.