The functions documented here tests different characteristics of NMF objects.
is.nmf
tests if an object is an NMF model or a
class that extends the class NMF.
is.empty.nmf
tests whether an NMF
object
describes an empty NMF model, i.e. it contains no data.
hasBasis
tests whether an objects contains a basis
matrix -- returned by a suitable method basis
--
with at least one row.
hasBasis
tests whether an objects contains a
coefficient matrix -- returned by a suitable method
coef
-- with at least one column.
is.partial.nmf
tests whether an NMF model object
contains either an empty basis or coefficient matrix. It
is a shorcut for !hasCoef(x) || !hasBasis(x)
.
isNMFfit
tells if an object results from an NMF
fit.
is.nmf(x) is.empty.nmf(x, ...) hasBasis(x) hasCoef(x) is.partial.nmf(x) isNMFfit(object, recursive = TRUE)
TRUE
and object
is a
plain list then isNMFfit
tests each element of the
list. Note that the recursive test only applies in the
case of lists that are not themselves NMFfit objects,
like NMFfitXn
objects for which the result of
isNMFfit
will always be TRUE
, although they
are list objects (a single logical value).isNMFfit
returns a logical
vector (or a
list if object
is a list of list) of the same
length as object
.
is.nmf
tests if object
is the name of a
class (if a character
string), or inherits from a
class, that extends NMF-class
.
is.empty.nmf
returns TRUE
if the basis and
coefficient matrices of x
have respectively zero
rows and zero columns. It returns FALSE
otherwise.
In particular, this means that an empty model can still
have a non-zero number of basis components, i.e. a
factorization rank that is not null. This happens, for
example, in the case of NMF models created calling the
factory method nmfModel
with a value only
for the factorization rank.
isNMFfit checks if object
inherits from
class NMFfit-class
or
NMFfitX-class
, which are the two types of
objects returned by the function nmf
. If
object
is a plain list
and
recursive=TRUE
, then the test is performed on each
element of the list, and the return value is a logical
vector (or a list if object
is a list of list) of
the same length as object
.
The function is.nmf
does some extra work with the
namespace as this function needs to return correct
results even when called in .onLoad
. See
discussion on r-devel:
https://stat.ethz.ch/pipermail/r-devel/2011-June/061357.html