Learn R Programming

S4Vectors (version 0.10.2)

aggregate-methods: Compute summary statistics of subsets of vector-like objects

Description

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

Usage

"aggregate"(x, by, FUN, start=NULL, end=NULL, width=NULL, frequency=NULL, delta=NULL, ..., simplify=TRUE)
"aggregate"(x, by, FUN, start=NULL, end=NULL, width=NULL, frequency=NULL, delta=NULL, ..., simplify=TRUE)
"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:

  aggregate(x, FUN=FUN, start=start, end=end, ..., simplify=simplify)
is equivalent to:
  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).

See Also

Examples

Run this code
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)

Run the code above in your browser using DataLab