Apply a function to each set in a multiData structure.
Inspired by lapply
, these functions apply a given function to each data
component in
the input multiData
structure, and optionally simplify the result to an array if possible.
mtd.apply( # What to do multiData, FUN, ..., # Pre-existing results and update options mdaExistingResults = NULL, mdaUpdateIndex = NULL, mdaCopyNonData = FALSE, # Output formatting options mdaSimplify = FALSE, returnList = FALSE, # Internal behaviour options mdaVerbose = 0, mdaIndent = 0) mtd.applyToSubset( # What to do multiData, FUN, ..., # Which rows and cols to keep mdaRowIndex = NULL, mdaColIndex = NULL, # Pre-existing results and update options mdaExistingResults = NULL, mdaUpdateIndex = NULL, mdaCopyNonData = FALSE, # Output formatting options mdaSimplify = FALSE, returnList = FALSE, # Internal behaviour options mdaVerbose = 0, mdaIndent = 0)
multiData |
A multiData structure to apply the function over |
FUN |
Function to be applied. |
... |
Other arguments to the function |
mdaRowIndex |
If given, must be a list of the same length as |
mdaColIndex |
A logical or numeric vector that specifies columns in each |
mdaExistingResults |
Optional list that contains previously calculated results. This can be useful
if only a few sets in |
mdaUpdateIndex |
Optional specification of which sets in |
mdaCopyNonData |
Logical: should non-data components of |
mdaSimplify |
Logical: should the result be simplified to an array, if possible? Note that this may lead to errors; if so, disable simplification. |
returnList |
Logical: should the result be turned into a list (rather than a multiData structure)?
Note that this is incompatible with simplification: if |
mdaVerbose |
Integer specifying whether progress diagnistics should be printed out. Zero means silent, increasing values will lead to more diagnostic messages. |
mdaIndent |
Integer specifying the indentation of the printed progress messages. Each unit equals two spaces. |
A multiData structure is intended to store (the same type of) data for multiple, possibly independent,
realizations
(for example, expression data for several independent experiments). It is a list where
each component corresponds to an (independent) data set. Each component is in turn a list that can hold
various types of information but must have a data
component. In a "strict" multiData structure, the
data
components are required to each be a matrix or a data frame and have the same number of
columns. In a "loose" multiData structure, the data
components can be anything (but for most
purposes should be of comparable type and content).
mtd.apply
works on any "loose" multiData structure; mtd.applyToSubset
assumes (and checks
for) a "strict" multiData structure.
A multiData structure containing the results of the supplied function on each data
component in the
input multiData structure. Other components are simply copied.
Peter Langfelder
multiData
to create a multiData structure;
mtd.applyToSubset
for applying a function to a subset of a multiData structure;
mtd.mapply
for vectorizing over several arguments.
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.