mdply {plyr} | R Documentation |
Call a multi-argument function with values taken from columns of an data frame or array, and combine results into a data frame
mdply(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL)
.fun |
function to apply to each piece |
... |
other arguments passed on to |
.progress |
name of the progress bar to use, see
|
.parallel |
if |
.paropts |
a list of additional options passed into
the |
.inform |
produce informative error messages? This is turned off by by default because it substantially slows processing speed, but is very useful for debugging |
.data |
matrix or data frame to use as source of arguments |
.expand |
should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable. |
The m*ply
functions are the plyr
version of
mapply
, specialised according to the type of
output they produce. These functions are just a
convenient wrapper around a*ply
with margins
= 1
and .fun
wrapped in splat
.
A data frame, as described in the output section.
Call a multi-argument function with values taken from columns of an data frame or array
The most unambiguous behaviour is achieved when
.fun
returns a data frame - in that case pieces
will be combined with rbind.fill
. If
.fun
returns an atomic vector of fixed length, it
will be rbind
ed together and converted to a data
frame. Any other values will result in an error.
If there are no results, then this function will return a
data frame with zero rows and columns
(data.frame()
).
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 data frame output: adply
,
ddply
, ldply
Other multiple arguments input: m_ply
,
maply
, mlply
mdply(data.frame(mean = 1:5, sd = 1:5), rnorm, n = 2) mdply(expand.grid(mean = 1:5, sd = 1:5), rnorm, n = 2) mdply(cbind(mean = 1:5, sd = 1:5), rnorm, n = 5) mdply(cbind(mean = 1:5, sd = 1:5), as.data.frame(rnorm), n = 5)