| aaply {plyr} | R Documentation |
For each slice of an array, apply function, keeping
results as an array. 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).
aaply(.data, .margins, .fun = NULL, ..., .expand = TRUE,
.progress = "none", .drop = TRUE, .parallel = FALSE)
.fun |
function to apply to each piece |
... |
other arguments passed on to |
.progress |
name of the progress bar to use, see
|
.data |
matrix, array or data frame to be processed |
.margins |
a vector giving the subscripts to split
up |
.expand |
if |
.parallel |
if |
.drop |
should extra dimensions of length 1 in the
output be dropped, simplifying the output. Defaults to
|
if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions)
This function splits matrices, arrays and data frames by dimensions
If there are no results, then this function will return a
vector of length 0 (vector()).
Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. http://www.jstatsoft.org/v40/i01/.
Other array input: adply,
alply
Other array output: daply,
laply
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)