is.nmf | R Documentation |
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)
x |
an R object. See section Details, for how each function uses this argument. |
... |
extra parameters to allow extension or passed to subsequent calls |
object |
any R object. |
recursive |
if |
is.nmf
tests if object
is the name of a
class (if a character
string), or inherits from a
class, that extends NMF
.
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
or
NMFfitX
, 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
.
isNMFfit
returns 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
NMFfit
,
NMFfitX
,
NMFfitXn
#----------
# is.nmf
#----------
# test if an object is an NMF model, i.e. that it implements the NMF interface
is.nmf(1:4)
is.nmf( nmfModel(3) )
is.nmf( nmf(rmatrix(10, 5), 2) )
#----------
# is.empty.nmf
#----------
# empty model
is.empty.nmf( nmfModel(3) )
# non empty models
is.empty.nmf( nmfModel(3, 10, 0) )
is.empty.nmf( rnmf(3, 10, 5) )
#----------
# isNMFfit
#----------
## Testing results of fits
# generate a random
V <- rmatrix(20, 10)
# single run -- using very low value for maxIter to speed up the example
res <- nmf(V, 3, maxIter=3L)
isNMFfit(res)
# multiple runs - keeping single fit
resm <- nmf(V, 3, nrun=2, maxIter=3L)
isNMFfit(resm)
# with a list of results
isNMFfit(list(res, resm, 'not a result'))
isNMFfit(list(res, resm, 'not a result'), recursive=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.