tapplySimpl {sfsmisc} | R Documentation |
More simplification in tapply() result
Description
For the case of more than two categories or indices (in INDEX
),
traditional tapply(*, simplify = TRUE)
still returns a
list when an array may seem more useful and natural. This is provided
by tapplySimpl()
if the function FUN()
is defined such
as to return a vector of the same length in all cases.
Usage
tapplySimpl(X, INDEX, FUN, ...)
Arguments
X |
an atomic object, typically a vector. All these arguments
are as in |
INDEX |
list of (typically more than one) factors, each of same
length as |
FUN |
the function to be applied. For the result to be
simplifiable, |
... |
optional arguments to |
Value
If the above conditions are satisfied, the list returned from
r <- tapply(X, INDEX, FUN, ...)
is simplified into an
array
of rank 1 + \#\{indices\}
, i.e.,
1+length(INDEX)
; otherwise, tapplySimpl()
returns the list
r
, i.e., the same as tapply()
.
Author(s)
Martin Maechler, 14 Jun 1993 (for S-plus).
See Also
tapply(*, simplify=TRUE)
.
Examples
## Using tapply() would give a list (with dim() of a matrix);
## here we get 3-array:
data(esoph)
with(esoph, {
mima <<- tapplySimpl(ncases/ncontrols, list(agegp, alcgp), range)
stopifnot(dim(mima) == c(2, nlevels(agegp), nlevels(alcgp)))
})
aperm(mima)