For each element of a list, apply function then combine results into a data frame.
Usage
ldply(
.data,
.fun = NULL,
...,
.progress = "none",
.inform = FALSE,
.parallel = FALSE,
.paropts = NULL,
.id = NA
)Arguments
- .data
list to be processed
- .fun
function to apply to each piece
- ...
other arguments passed on to
.fun- .progress
name of the progress bar to use, see
create_progress_bar- .inform
produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging
- .parallel
if
TRUE, apply function in parallel, using parallel backend provided by foreach- .paropts
a list of additional options passed into the
foreachfunction when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the.exportand.packagesarguments to supply them so that all cluster nodes have the correct environment set up for computing.- .id
name of the index column (used if
.datais a named list). PassNULLto avoid creation of the index column. For compatibility, omit this argument or passNAto avoid converting the index column to a factor; in this case,".id"is used as colum name.
Output
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 rbinded 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()).
References
Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. https://www.jstatsoft.org/v40/i01/.