mat2triplet {Matrix} R Documentation

## Map Matrix to its Triplet Representation

### Description

From an R object coercible to "TsparseMatrix", typically a (sparse) matrix, produce its triplet representation which may collapse to a “Duplet” in the case of binary aka pattern, such as "nMatrix" objects.

### Usage

mat2triplet(x, uniqT = FALSE)


### Arguments

 x any R object for which as(x, "TsparseMatrix") works; typically a matrix of one of the Matrix package matrices. uniqT logical indicating if the triplet representation should be ‘unique’ in the sense of uniqTsparse().

### Value

A list, typically with three components,

 i vector of row indices for all non-zero entries of x i vector of columns indices for all non-zero entries of x x vector of all non-zero entries of x; exists only when as(x, "TsparseMatrix") is not a "nsparseMatrix".

Note that the order of the entries is determined by the coercion to "TsparseMatrix" and hence typically with increasing j (and increasing i within ties of j).

### Note

The mat2triplet() utility was created to be a more efficient and more predictable substitute for summary(<sparseMatrix>). UseRs have wrongly expected the latter to return a data frame with columns i and j which however is wrong for a "diagonalMatrix".

The summary() method for "sparseMatrix", summary,sparseMatrix-method.

mat2triplet() is conceptually the inverse function of spMatrix and (one case of) sparseMatrix.

### Examples


if(FALSE) ## The function is defined (don't redefine here!), simply as
mat2triplet <- function(x, uniqT = FALSE) {
T <- as(x, "TsparseMatrix")
if(uniqT && anyDuplicatedT(T)) T <- .uniqTsparse(T)
if(is(T, "nsparseMatrix"))
list(i = T@i + 1L, j = T@j + 1L)
else list(i = T@i + 1L, j = T@j + 1L, x = T@x)
}

i <- c(1,3:8); j <- c(2,9,6:10); x <- 7 * (1:7)
(Ax <- sparseMatrix(i, j, x = x)) ##  8 x 10 "dgCMatrix"
str(trA <- mat2triplet(Ax))
stopifnot(i == sort(trA$i), sort(j) == trA$j,  x == sort(trA\$x))

D <- Diagonal(x=4:2)
summary(D)
str(mat2triplet(D))


[Package Matrix version 1.4-1 Index]