Compute function on subsets of a variable in a data frame.
maggregate(
formula,
data = parent.frame(),
FUN,
groups = NULL,
subset,
drop = FALSE,
...,
.format = c("default", "table", "flat"),
.overall = mosaic.par.get("aggregate.overall"),
.multiple = FALSE,
.name = deparse(substitute(FUN)),
.envir = parent.frame()
)
a formula. Left side provides variable to be summarized. Right side and condition describe subsets. If the left side is empty, right side and condition are shifted over as a convenience.
a data frame.
Note that the default is data = parent.frame()
. This makes it convenient to
use this function interactively by treating the working environment as if it were
a data frame. But this may not be appropriate for programming uses.
When programming, it is best to use an explicit data
argument
-- ideally supplying a data frame that contains the variables mentioned
in formula
.
a function to apply to each subset
grouping variable that will be folded into the formula (if there is room for it). This offers some additional flexibility in how formulas can be specified.
a logical indicating a subset of data
to be processed.
a logical indicating whether unused levels should be dropped.
additional arguments passed to FUN
format used for aggregation. "default"
and "flat"
are equivalent.
currently unused
a logical indicating whether FUN returns multiple values
Ignored if .multiple
is not NULL
.
a name used for the resulting object
an environment in which to evaluate expressions
a vector
if (require(mosaicData)) {
maggregate( cesd ~ sex, HELPrct, FUN = mean )
# using groups instead
maggregate( ~ cesd, groups = sex, HELPrct, FUN = sd )
# the next four all do the same thing
maggregate( cesd ~ sex + homeless, HELPrct, FUN = mean )
maggregate( cesd ~ sex | homeless, HELPrct, FUN = sd )
maggregate( ~ cesd | sex , groups= homeless, HELPrct, FUN = sd )
maggregate( cesd ~ sex, groups = homeless, HELPrct, FUN = sd )
# this is unusual, but also works.
maggregate( cesd ~ NULL , groups = sex, HELPrct, FUN = sd )
}
#> female male
#> 13.01764 12.10332