Description Usage Arguments Details Examples
This method provides a convenient way of sub-setting objects of class NMF
,
using a matrix-like syntax.
1 2 |
x |
an object that inherit from NMF. |
i |
index used to subset on the rows of the basis matrix (i.e.
the features).
It can be a |
j |
index used to subset on the columns of the mixture
coefficient matrix (i.e. the samples).
It can be a |
... |
used to specify a third index to subset on the basis components,
i.e. on both the columns and rows of the basis matrix and mixture
coefficient respectively.
It can be a Note that only the first extra subset index is used.
A warning is thrown if more than one extra argument is passed in |
drop |
single |
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
:
No index as in x[]
or x[,]
: the value is the
object x
unchanged.
One single index as in x[i]
: the value is the complete NMF
model composed of the selected basis components, subset by i
,
except if argument drop=TRUE
, or if it is missing and i
is of length 1.
Then only the basis matrix is returned with dropped dimensions:
x[i, drop=TRUE]
<=> drop(basis(x)[, i])
.
This means for example that x[1L]
is the first basis vector,
and x[1:3, drop = TRUE]
is the matrix composed of the 3 first basis vectors – in columns.
Note that in version <= 0.18.3, the call x[i, drop = TRUE.or.FALSE]
was equivalent to
basis(x)[, i, drop=TRUE.or.FALSE]
.
More than one index with 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. In this case argument drop
is not used.
More than one index with 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # create a dummy NMF object that highlight the different way of subsetting
a <- nmfModel(W=outer(seq(1,5),10^(0:2)), H=outer(10^(0:2),seq(-1,-10)))
basisnames(a) <- paste('b', 1:nbasis(a), sep='')
rownames(a) <- paste('f', 1:nrow(a), sep='')
colnames(a) <- paste('s', 1:ncol(a), sep='')
# or alternatively:
# dimnames(a) <- list( features=paste('f', 1:nrow(a), sep='')
# , samples=paste('s', 1:ncol(a), sep='')
# , basis=paste('b', 1:nbasis(a)) )
# look at the resulting NMF object
a
basis(a)
coef(a)
# extract basis components
a[1]
a[1, drop=FALSE] # not dropping matrix dimension
a[2:3]
# subset on the features
a[1,]
a[2:4,]
# dropping the NMF-class wrapping => return subset basis matrix
a[2:4,, drop=TRUE]
# subset on the samples
a[,1]
a[,2:4]
# dropping the NMF-class wrapping => return subset coef matrix
a[,2:4, drop=TRUE]
# subset on the basis => subsets simultaneously basis and coef matrix
a[,,1]
a[,,2:3]
a[4:5,,2:3]
a[4:5,,2:3, drop=TRUE] # return subset basis matrix
a[,4:5,2:3, drop=TRUE] # return subset coef matrix
# 'drop' has no effect here
a[,,2:3, drop=TRUE]
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.