dgTMatrix-class | R Documentation |
The "dgTMatrix"
class is the class of sparse
matrices stored as (possibly redundant) triplets. The internal
representation is not at all unique, contrary to the one for class
dgCMatrix
.
Objects can be created by calls of the form
new("dgTMatrix", ...)
, but more typically via
spMatrix()
or sparseMatrix(*, repr = "T")
.
i
:integer
row indices of non-zero
entries in 0-base, i.e., must be in 0:(nrow(.)-1)
.
j
:integer
column indices of non-zero
entries. Must be the same length as slot i
and
0-based as well, i.e., in 0:(ncol(.)-1)
.
x
:numeric
vector - the (non-zero)
entry at position (i,j)
. Must be the same length as slot
i
. If an index pair occurs more than once, the corresponding
values of slot x
are added to form the element of the matrix.
Dim
:Object of class "integer"
of length 2 -
the dimensions of the matrix.
signature(e1 = "dgTMatrix", e2 = "dgTMatrix")
signature(x = "dgTMatrix")
: plots an image of
x
using the levelplot
function
signature(x = "dgTMatrix")
: returns the transpose of
x
Triplet matrices are a convenient form in which to construct sparse
matrices after which they can be coerced to
dgCMatrix
objects.
Note that both new(.)
and spMatrix
constructors
for "dgTMatrix"
(and other "TsparseMatrix"
classes) implicitly add x_k
's that belong to identical
(i_k, j_k)
pairs.
However this means that a matrix typically can be stored in more than
one possible "TsparseMatrix"
representations.
Use asUniqueT()
in order to ensure uniqueness of the
internal representation of such a matrix.
Class dgCMatrix
or the superclasses
dsparseMatrix
and
TsparseMatrix
; asUniqueT
.
m <- Matrix(0+1:28, nrow = 4)
m[-3,c(2,4:5,7)] <- m[ 3, 1:4] <- m[1:3, 6] <- 0
(mT <- as(m, "TsparseMatrix"))
str(mT)
mT[1,]
mT[4, drop = FALSE]
stopifnot(identical(mT[lower.tri(mT)],
m [lower.tri(m) ]))
mT[lower.tri(mT,diag=TRUE)] <- 0
mT
## Triplet representation with repeated (i,j) entries
## *adds* the corresponding x's:
T2 <- new("dgTMatrix",
i = as.integer(c(1,1,0,3,3)),
j = as.integer(c(2,2,4,0,0)), x=10*1:5, Dim=4:5)
str(T2) # contains (i,j,x) slots exactly as above, but
T2 ## has only three non-zero entries, as for repeated (i,j)'s,
## the corresponding x's are "implicitly" added
stopifnot(nnzero(T2) == 3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.