alply: Split array, apply function, and return results in a list.
Description
For each slice of an array, apply function then combine
results into a list. alply
is somewhat similar to
apply
for cases where the results are not
atomic.Usage
alply(.data, .margins, .fun = NULL, ..., .expand = TRUE,
.progress = "none", .parallel = FALSE)
Arguments
.fun
function to apply to each piece
...
other arguments passed on to .fun
.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
.expand
if .data
is a data frame, should
output be 1d (expand = FALSE), with an element for each
row; or nd (expand = TRUE), with a
.parallel
if TRUE
, apply function in
parallel, using parallel backend provided by foreach
dimension for each variable.
Input
This function splits matrices, arrays and data frames by
dimensionsOutput
If there are no results, then this function will return a
list of length 0 (list()
).References
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/.Examples
Run this codealply(ozone, 3, quantile)
alply(ozone, 3, function(x) table(round(x)))
Run the code above in your browser using DataLab