| aaply {plyr} | R Documentation |
For each slice of an array, apply function then combine results into an array
aaply(.data, .margins, .fun = NULL, ..., .progress = "none", drop. = TRUE)
.data |
matrix, array or data frame to be processed |
.margins |
a vector giving the subscripts to split up data by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions |
.fun |
function to apply to each piece |
... |
other arguments passed on to .fun |
.progress |
name of the progress bar to use, see create_progress_bar |
drop. |
should extra dimensions of length 1 be dropped, simplifying the output. Defaults to TRUE |
All plyr functions use the same split-apply-combine strategy: they split the
input into simpler pieces, apply .fun to each piece, and then combine
the pieces into a single data structure. This function splits matrices,
arrays and data frames by dimensions and combines the result into an array.
If there are no results, then this function will return a vector of length 0 (vector()).
This function is very similar to apply, except that it will
always return an array, and when the function returns >1 d data structures,
those dimensions are added on to the highest dimensions, rather than the
lowest dimensions. This makes aaply idempotent, so that
apply(input, X, identity) is equivalent to aperm(input, X).
See vignette("intro", "plyr") for more details, description and case
studies.
@keyword manip
@arguments matrix, array or data frame to be processed
@arguments a vector giving the subscripts to split up data by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions
@arguments function to apply to each piece
@arguments other arguments passed on to .fun
@arguments name of the progress bar to use, see create_progress_bar
@arguments should extra dimensions of length 1 be dropped, simplifying the output. Defaults to TRUE
@value if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions)
if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions)
Hadley Wickham <h.wickham@gmail.com>
dim(ozone) aaply(ozone, 1, mean) aaply(ozone, 1, mean, drop. = FALSE) aaply(ozone, 3, mean) aaply(ozone, c(1,2), mean) dim(aaply(ozone, c(1,2), mean)) dim(aaply(ozone, c(1,2), mean, drop. = FALSE)) aaply(ozone, 1, each(min, max)) aaply(ozone, 3, each(min, max)) standardise <- function(x) (x - min(x)) / (max(x) - min(x)) aaply(ozone, 3, standardise) aaply(ozone, 1:2, standardise) aaply(ozone, 1:2, diff)