Learn R Programming

Matrix (version 1.5-3)

dgTMatrix-class: Sparse matrices in triplet form

Description

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.

Arguments

Objects from the Class

Objects can be created by calls of the form new("dgTMatrix", ...), but more typically via spMatrix() or sparseMatrix(*, repr = "T").

Slots

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.

Methods

+

signature(e1 = "dgTMatrix", e2 = "dgTMatrix")

coerce

signature(from = "dgTMatrix", to = "dgCMatrix")

coerce

signature(from = "dgTMatrix", to = "dgeMatrix")

coerce

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, "CsparseMatrix"), as(x, "generalMatrix"), as(x, "dMatrix"), i.e. coercion to higher level virtual classes.

coerce

signature(from = "matrix", to = "dgTMatrix"), (direct coercion from tradition matrix).

image

signature(x = "dgTMatrix"): plots an image of x using the levelplot function

t

signature(x = "dgTMatrix"): returns the transpose of x

See Also

Class dgCMatrix or the superclasses dsparseMatrix and TsparseMatrix; uniqTsparse.

Examples

Run this code
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)

Run the code above in your browser using DataLab