Sparse matrices in triplet form
"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
Objects from the Class
Objects can be created by calls of the form
...), but more typically via
integerrow indices of non-zero entries in 0-base, i.e., must be in
integercolumn indices of non-zero entries. Must be the same length as slot
iand 0-based as well, i.e., in
numericvector - 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
xare added to form the element of the matrix.
Object of class
"integer"of length 2 - the dimensions of the matrix.
signature(e1 = "dgTMatrix", e2 = "dgTMatrix")
signature(from = "dgTMatrix", to = "dgCMatrix")
signature(from = "dgTMatrix", to = "dgeMatrix")
signature(from = "dgTMatrix", to = "matrix"), and typically coercion methods for more specific signatures, we are not mentioning here.
Note that these are not guaranteed to continue to exist, but rather you should use calls like
as(x, "dMatrix"), i.e. coercion to higher level virtual classes.
signature(from = "matrix", to = "dgTMatrix"), (direct coercion from tradition matrix).
signature(x = "dgTMatrix"): plots an image of
signature(x = "dgTMatrix"): returns the transpose of
Triplet matrices are a convenient form in which to construct sparse
matrices after which they can be coerced to
Note that both
"dgTMatrix" (and other
classes) implicitly add x_k's that belong to identical
(i_k, j_k) pairs.
However this means that a matrix typically can tbe stored in more than
uniqTsparse() in order to ensure uniqueness of the
internal representation of such a matrix.
dgCMatrix or the superclasses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
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, "dgTMatrix")) 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)