當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。