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)