This method provides a convenient way of sub-setting
objects of class NMF
, using a matrix-like syntax.
S4 (NMF)
`[`(x, i, j, ..., drop = FALSE)
numeric
, logical
, or character
vector (whose elements must match the row names of
x
). In the case of a logical
vector the
entries are recycled if necessary.numeric
, logical
, or character
vector (whose elements must match the column names of
x
). In the case of a logical
vector the
entries are recycled if necessary.numeric
, logical
, or
character
vector (whose elements must match the
basis names of x
). In the case of a logical
vector the entries are recycled if necessary.
Note that only the first extra subset index is used. A
warning is thrown if more than one extra argument is
passed in ...
.logical
value used to drop the
NMF-class
wrapping and only return subsets of one
of the factor matrices: drop=FALSE
it returns the NMF
object
x
with the basis matrix and/or mixture coefficient
matrix subset accordingly to the values in i
,
j
, and ...
.
drop=TRUE
it returns the factor that is
subset "the more" (see section Value). i
and
j
are provided, argument drop
is ignored:
x[i,j, drop=TRUE]
(resp. x[i,j,k,
drop=TRUE]
) is identical to x[i,j, drop=FALSE]
(resp. x[i,j,k, drop=FALSE]
).It allows to consistently subset one or both matrix factors in the NMF model, as well as retrieving part of the basis components or part of the mixture coefficients with a reduced amount of code.
The returned value depends on the number of subset index
passed and the value of argument drop
:
x[]
or x[,]
:
the value is the object x
unchanged.
x[i]
: the value is
the complete NMF model composed of the selected basis
components, subset by i
. If argument drop
is not missing then only the basis matrix is returned and
drop
is used: x[i, drop=TRUE.or.FALSE]
<=>
basis(x)[, i, drop=TRUE.or.FALSE]
.
Note that in version <= 0.8.7, the call x[i]
was
equivalent to basis(x)[, i, drop=TRUE.or.FALSE]
.
drop=FALSE
(default) as in x[i,j]
, x[i,]
,
x[,j]
, x[i,j,k]
, x[i,,k]
, etc...:
the value is a NMF
object whose basis and/or
mixture coefficient matrices have been subset
accordingly. The third index k
affects
simultaneously the columns of the basis matrix AND the
rows of the mixture coefficient matrix.
drop=TRUE
and
i
xor j
missing: the value returned is the
matrix that is the more affected by the subset index.
That is that x[i, , drop=TRUE]
and x[i, , k,
drop=TRUE]
return the basis matrix subset by [i,]
and [i,k]
respectively, while x[, j,
drop=TRUE]
and x[, j, k, drop=TRUE]
return the
mixture coefficient matrix subset by [,j]
and
[k,j]
respectively.