dgTMatrix-class: Sparse matrices in triplet form In Matrix: Sparse and Dense Matrix Classes and Methods

 dgTMatrix-class R Documentation

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`.

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")`

image

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

t

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

Note

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`.

Examples

``````
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