The function nmfApply provides exteneded
apply-like functionality for objects of class
NMF. It enables to easily apply a function over
different margins of NMF models.
nmfApply(X, MARGIN, FUN, ..., simplify = TRUE,
USE.NAMES = TRUE)a vector or a list. See apply and
sapply for more details on the output
format.
an object that has suitable basis
and coef methods, e.g. an NMF model.
a single numeric (integer) value that
specifies over which margin(s) the function FUN is
applied. See section Details for a list of
possible values.
a function to apply over the specified margins.
extra arguments passed to FUN
a logical only used when MARGIN=3,
that indicates if sapply should try to simplify
result if possible. Since this argument follows
‘...’ its name cannot be abbreviated.
a logical only used when
MARGIN=3, that indicates if sapply should
use the names of the basis components to name the results
if present. Since this argument follows ‘...’ its
name cannot be abbreviated.
The function FUN is applied via a call to
apply or sapply according to
the value of argument MARGIN as follows:
apply FUN to each
row of the basis matrix: apply(basis(X), 1L,
FUN, ...).
apply FUN to each column
of the coefficient matrix: apply(coef(X), 2L, FUN,
...).
apply FUN to each pair of
associated basis component and basis profile: more or
less sapply(seq(nbasis(X)), function(i, ...)
FUN(basis(X)[,i], coef(X)[i, ], ...), ...).
In this case FUN must be have at least two
arguments, to which are passed each basis components and
basis profiles respectively -- as numeric vectors.
apply FUN to each column
of the basis matrix, i.e. to each basis component:
apply(basis(X), 2L, FUN, ...).
apply FUN to each row of
the coefficient matrix: apply(coef(X), 1L, FUN,
...).