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()
)

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 explicit data argument -- ideally supplying a data frame that contains the variables mentioned in formula.

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 data to 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 .multiple is not NULL.

.name

a name used for the resulting object

.envir

an environment in which to evaluate expressions

Value

a vector

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