### Subversion checkout URL

You can clone with HTTPS or Subversion.

Fetching contributors…

Cannot retrieve contributors at this time

file 90 lines (77 sloc) 2.698 kb
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 \name{aaply}\alias{aaply}\title{Split array, apply function, and return results in an array.}\usage{  aaply(.data, .margins, .fun = NULL, ..., .expand = TRUE,    .progress = "none", .drop = TRUE, .parallel = FALSE)}\arguments{  \item{.fun}{function to apply to each piece}  \item{...}{other arguments passed on to \code{.fun}}  \item{.progress}{name of the progress bar to use, see  \code{\link{create_progress_bar}}}  \item{.data}{matrix, array or data frame to be processed}  \item{.margins}{a vector giving the subscripts to split  up \code{data} by. 1 splits up by rows, 2 by columns and  c(1,2) by rows and columns, and so on for higher  dimensions}  \item{.expand}{if \code{.data} is a data frame, should  output be 1d (expand = FALSE), with an element for each  row; or nd (expand = TRUE), with a}  \item{.parallel}{if \code{TRUE}, apply function in  parallel, using parallel backend provided by foreach  dimension for each variable.}  \item{.drop}{should extra dimensions of length 1 in the  output be dropped, simplifying the output. Defaults to  \code{TRUE}}}\value{  if results are atomic with same type and dimensionality,  a vector, matrix or array; otherwise, a list-array (a  list with dimensions)}\description{  For each slice of an array, apply function, keeping  results as an array. This function is very similar to  \code{\link{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 \code{aaply} idempotent, so that \code{apply(input,  X, identity)} is equivalent to \code{aperm(input, X)}.}\section{Input}{  This function splits matrices, arrays and data frames by  dimensions}\section{Output}{  If there are no results, then this function will return a  vector of length 0 (\code{vector()}).}\examples{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)}\references{  Hadley Wickham (2011). The Split-Apply-Combine Strategy  for Data Analysis. Journal of Statistical Software,  40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}.}\seealso{  Other array input: \code{\link{adply}},  \code{\link{alply}}  Other array output: \code{\link{daply}},  \code{\link{laply}}}\keyword{manip}
Something went wrong with that request. Please try again.