Compute function on subsets of a variable in a data frame.
Usage
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()
)Arguments
- formula
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.
- data
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 explicitdataargument – ideally supplying a data frame that contains the variables mentioned informula.- FUN
a function to apply to each subset
- groups
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.
- subset
a logical indicating a subset of
datato be processed.- drop
a logical indicating whether unused levels should be dropped.
- ...
additional arguments passed to
FUN- .format
format used for aggregation.
"default"and"flat"are equivalent.- .overall
currently unused
- .multiple
a logical indicating whether FUN returns multiple values Ignored if
.multipleis notNULL.- .name
a name used for the resulting object
- .envir
an environment in which to evaluate expressions
Examples
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