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


R sparseMatrix-class 虚拟类“sparseMatrix”——稀疏矩阵之母


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

说明

所有稀疏矩阵的虚拟母类

插槽

Dim

"integer" 类的对象(矩阵的维度)必须是具有两个非负值的整数向量。

Dimnames

长度为 2 的列表 - 从类 Matrix 继承,请参阅 Matrix

扩展

直接类 "Matrix"

方法

展示

(object = "sparseMatrix"):稀疏矩阵的show方法使用printSpMatrix()将“structural”零打印为".",这允许进一步定制。

打印

signature(x = "sparseMatrix"), ....
print默认情况下稀疏矩阵的方法与show()但可以使用额外的可选参数进行调用,请参阅printSpMatrix().

格式

signature(x = "sparseMatrix"), ....
format稀疏矩阵的方法,参见formatSpMatrix()有关额外可选参数等详细信息。

概括

(object = "sparseMatrix", uniqT=FALSE) :返回 S3 类 "sparseSummary" 的对象,它本质上是一个 data.frame,其中包含 (i,j,x) 列(或者只是 (i,j) 对于 nsparseMatrix 类对象)以及存储的(通常非零)条目。 print 方法类似于 Matlab 打印稀疏矩阵的方式,以及 MatrixMarket 格式,请参阅 writeMM

绑定2

(x = *, y = *):将矩阵按列绑定在一起的几种方法,请参阅基础cbindrbind职能。
请注意,即使一个参数密集且大于稀疏参数,结果通常也是稀疏的。

绑定2

(x = *, y = *):将矩阵按行绑定在一起,请参见上面的cbind2

行列式

(x = "sparseMatrix", logarithm=TRUE) :稀疏矩阵的determinant() 方法通常通过Choleskylu 分解进行工作。

诊断

(x = "sparseMatrix"):提取稀疏矩阵的对角线。

暗淡<-

signature(x = "sparseMatrix", value = "ANY") :允许将稀疏矩阵重塑为具有相同条目但维度不同的稀疏矩阵。 value 的长度必须为 2 并满足 prod(value) == prod(dim(x))

强制

signature(from = "factor", to = "sparseMatrix") :将因子强制转换为 "sparseMatrix" 会生成存储为类 "dgCMatrix" 对象的指标行矩阵。要获得表示因子和数字协变量交互作用的列,请将结果的 "x" 槽替换为数字协变量,然后进行转置。因子中的缺失值 (NA) 将转换为所有 0 的列。

另请参阅 colSumsnorm 等,了解具有单独帮助页面的方法。

注意

在乘法运算的方法选择中(即 %*%crossprod 的双参数形式),sparseMatrix 类优先,因为如果一个操作数是稀疏矩阵,另一个操作数是任何类型的稠密矩阵,则稠密矩阵类优先矩阵被强制为 dgeMatrix 并使用适当的稀疏矩阵方法。

例子


showClass("sparseMatrix") ## and look at the help() of its subclasses
M <- Matrix(0, 10000, 100)
M[1,1] <- M[2,3] <- 3.14
M  ## show(.) method suppresses printing of the majority of rows

data(CAex, package = "Matrix")
dim(CAex) # 72 x 72 matrix
determinant(CAex) # works via sparse lu(.)

## factor -> t( <sparse design matrix> ) :
(fact <- gl(5, 3, 30, labels = LETTERS[1:5]))
(Xt <- as(fact, "sparseMatrix"))  # indicator rows

## missing values --> all-0 columns:
f.mis <- fact
i.mis <- c(3:5, 17)
is.na(f.mis) <- i.mis
Xt != (X. <- as(f.mis, "sparseMatrix")) # differ only in columns 3:5,17
stopifnot(all(X.[,i.mis] == 0), all(Xt[,-i.mis] == X.[,-i.mis]))

也可以看看

sparseMatrix 及其参考,例如 xtabs(*, sparse=TRUE)sparse.model.matrix() ,用于构造稀疏矩阵。

T2graph 用于将 "graph" 对象(包 graph )与稀疏矩阵相互转换。

相关用法


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