Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

87 lines (74 sloc) 2.683 kb
\title{Split array, apply function, and return results in a list.}
alply(.data, .margins, .fun = NULL, ..., .expand = TRUE,
.progress = "none", .inform = FALSE, .parallel = FALSE,
.paropts = NULL)
\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
\item{.parallel}{if \code{TRUE}, apply function in
parallel, using parallel backend provided by foreach}
\item{.paropts}{a list of additional options passed into
the \code{\link[foreach]{foreach}} function when parallel
computation is enabled. This is important if (for
example) your code relies on external data or packages:
use the \code{.export} and \code{.packages} arguments to
supply them so that all cluster nodes have the correct
environment set up for computing.}
\item{.inform}{produce informative error messages? This
is turned off by by default because it substantially
slows processing speed, but is very useful for debugging}
\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
\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 dimension for each
list of results
For each slice of an array, apply function then combine
results into a list.
The list will have "dims" and "dimnames" corresponding to
the margins given. For instance \code{alply(x, c(3,2),
...)} where \code{x} has dims \code{c(4,3,2)} will give a
result with dims \code{c(2,3)}.
\code{alply} is somewhat similar to \code{\link{apply}}
for cases where the results are not atomic.
This function splits matrices, arrays and data frames by
If there are no results, then this function will return a
list of length 0 (\code{list()}).
alply(ozone, 3, quantile)
alply(ozone, 3, function(x) table(round(x)))
Hadley Wickham (2011). The Split-Apply-Combine Strategy
for Data Analysis. Journal of Statistical Software,
40(1), 1-29. \url{}.
Other array input: \code{\link{a_ply}},
\code{\link{aaply}}, \code{\link{adply}}
Other list output: \code{\link{dlply}},
\code{\link{llply}}, \code{\link{mlply}}
Jump to Line
Something went wrong with that request. Please try again.