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.
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).
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