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)
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.
a vector or a list. See apply
and
sapply
for more details on the output
format.
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,
...)
.