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)
basis
and coef
methods,
e.g. an NMF model.FUN
is applied.
See section Details for a list of possible values.FUN
MARGIN=3
, that indicates if sapply
should try to simplify result if possible.
Since this argument follows ... its name cannot be abbreviated.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:
FUN
to each row of the basis matrix:
apply(basis(X), 1L, FUN, ...)
.
FUN
to each column of the coefficient matrix:
apply(coef(X), 2L, FUN, ...)
.
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.
FUN
to each column of the basis matrix, i.e. to each
basis component:
apply(basis(X), 2L, FUN, ...)
.
FUN
to each row of the coefficient matrix:
apply(coef(X), 1L, FUN, ...)
.