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)
.
@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)