当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dgTMatrix-class 三元组形式的稀疏矩阵


R语言 dgTMatrix-class 位于 Matrix 包(package)。

说明

"dgTMatrix" 类是存储为(可能冗余)三元组的稀疏矩阵类。内部表示根本不是唯一的,与类 dgCMatrix 的表示相反。

类中的对象

可以通过 new("dgTMatrix", ...) 形式的调用来创建对象,但更常见的是通过 spMatrix()sparseMatrix(*, repr = "T") 来创建。

插槽

i

integer 以 0 为基数的非零条目的行索引,即必须位于 0:(nrow(.)-1) 中。

j

integer 非零条目的列索引。必须与槽 i 的长度相同,并且也从 0 开始,即在 0:(ncol(.)-1) 中。

x

numeric 向量 - 位置 (i,j) 处的(非零)条目。必须与插槽 i 的长度相同。如果索引对出现多次,则将槽 x 的相应值相加以形成矩阵的元素。

Dim

"integer" 类的对象,长度为 2 - 矩阵的维度。

方法

+

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

图片

signature(x = "dgTMatrix") :使用 levelplot 函数绘制 x 的图像

t

signature(x = "dgTMatrix") :返回x 的转置

注意

三元组矩阵是构造稀疏矩阵的一种便捷形式,之后可以将它们强制转换为 dgCMatrix 对象。

请注意,"dgTMatrix"(和其他"TsparseMatrix"类)的new(.)spMatrix构造函数都隐式添加属于相同 对的

然而,这意味着矩阵通常可以以多种可能的 "TsparseMatrix" 表示形式存储。使用uniqTsparse() 以确保此类矩阵的内部表示的唯一性。

例子


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)

也可以看看

dgCMatrix 或超类 dsparseMatrixTsparseMatrixuniqTsparse

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Sparse matrices in triplet form。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。