Description Usage Arguments Note Author(s) See Also Examples
Base R's aggregate
function allows you to
specify multiple functions when aggregating. However, the
output of such commands is a data.frame
where the
aggregated "columns" are actually matrices.
aggregate2
is a basic wrapper around
aggregate
that outputs a regular data.frame
instead.
1 | aggregate2(data, aggs, ids, funs = NULL, ...)
|
data |
Your |
aggs |
The variables that need to be aggregated, specified as a character vector. |
ids |
The variables that serve as grouping variables, specified as a character vector. |
funs |
The functions that you want to apply, specified as a character vector. |
... |
Further arguments to |
This function essentially constructs a formula
that can be used with aggregate
and keeps track of
the names of the aggregation functions you have applied
to create new variable names. This function is not very
useful when the output of FUN
would already output
a matrix (for example, if FUN = fivenum
or
FUN = summary
). In such cases, it is recommended
to use base R's aggregate
with a do.call
.
For example: do.call("data.frame", aggregate(. ~
Species, iris, summary))
.
Ananda Mahto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # One-to-one, two functions
(temp1a <- aggregate(weight ~ feed, data = chickwts,
function(x) cbind(mean(x), sum(x))))
str(temp1a)
(temp1b <- aggregate2(chickwts, "weight", "feed", c("mean", "sum")))
str(temp1b)
# Many-to-many, two functions
(temp2a <- aggregate(cbind(ncases, ncontrols) ~ alcgp + tobgp, data = esoph,
function(x) cbind(sum(x), mean(x))))
str(temp2a)
(temp2b <- aggregate2(esoph, c("ncases", "ncontrols"),
c("alcgp", "tobgp"), c("sum", "mean")))
str(temp2b)
# Dot notation
(temp3a <- aggregate(len ~ ., data = ToothGrowth,
function(x) cbind(sum(x), mean(x))))
str(temp3a)
(temp3b <- aggregate2(ToothGrowth, "len", ".", c("sum", "mean")))
str(temp3b)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.