Description Objects from the Class Slots Methods Note See Also Examples

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 `as(*, "dgTMatrix")`

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

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

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 `uniqTsparse()`

in order to ensure uniqueness of the
internal representation of such a matrix.

Class `dgCMatrix`

or the superclasses
`dsparseMatrix`

and
`TsparseMatrix`

; `uniqTsparse`

.

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

```
4 x 7 sparse Matrix of class "dgTMatrix"
[1,] 1 . 9 . . . .
[2,] 2 . 10 . . . .
[3,] . . . . 19 . 27
[4,] 4 . 12 . . 24 .
Formal class 'dgTMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:9] 0 1 3 0 1 3 2 3 2
..@ j : int [1:9] 0 0 0 2 2 2 4 5 6
..@ Dim : int [1:2] 4 7
..@ Dimnames:List of 2
.. ..$ : NULL
.. ..$ : NULL
..@ x : num [1:9] 1 2 4 9 10 12 19 24 27
..@ factors : list()
[1] 1 0 9 0 0 0 0
[1] 4
<sparse>[ <logic> ] : .M.sub.i.logical() maybe inefficient
4 x 7 sparse Matrix of class "dgTMatrix"
[1,] . . 9 . . . .
[2,] . . 10 . . . .
[3,] . . . . 19 . 27
[4,] . . . . . 24 .
Formal class 'dgTMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:5] 1 1 0 3 3
..@ j : int [1:5] 2 2 4 0 0
..@ Dim : int [1:2] 4 5
..@ Dimnames:List of 2
.. ..$ : NULL
.. ..$ : NULL
..@ x : num [1:5] 10 20 30 40 50
..@ factors : list()
4 x 5 sparse Matrix of class "dgTMatrix"
[1,] . . . . 30
[2,] . . 30 . .
[3,] . . . . .
[4,] 90 . . . .
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.