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


R nnzero-methods 矩陣非零值的數量


R語言 nnzero-methods 位於 Matrix 包(package)。

說明

返回 numeric-like 的非零值的數量R對象,特別是對象x從類繼承Matrix.

用法

nnzero(x, na.counted = NA)

參數

x

一個R對象,通常繼承自類Matrix或者numeric.

na.counted

logical 說明如何計算NAna.counted 有三種可能的設置:

TRUE

NA 被視為非零(因為“它們不為零”)。

NA

(默認)如果 x 中有 NA,結果將為 NA (因為“NA 未知,即可能為零”)。

FALSE

在對非零條目進行計數之前,x 中會省略NA

對於稀疏矩陣,您可能經常想要使用 na.counted = TRUE

x 中非零條目的數量(通常為 integer )。

請注意,對於對稱稀疏矩陣 S (即從類 symmetricMatrix 繼承), nnzero(S) 通常是 length(S@x) 的兩倍。

方法

signature(x = "ANY")

Matrix 類對象的默認方法,隻是計算 x0 的數量,根據 na.counted 參數計算 NA 的數量,請參見上文。

signature(x = "denseMatrix")

從概念上講,與傳統的 matrix 對象相同,但必須注意 "symmetricMatrix" 對象。

signature(x = "diagonalMatrix")signature(x = "indMatrix")

這些特殊的 "sparseMatrix" 類的快速簡單方法。

signature(x = "sparseMatrix")

通常,這是最有趣的方法,也仔細考慮"symmetricMatrix"對象。

例子


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"))
nnzero(mT)
(S <- crossprod(mT))
nnzero(S)
str(S) # slots are smaller than nnzero()
stopifnot(nnzero(S) == sum(as.matrix(S) != 0))# failed earlier

data(KNex, package = "Matrix")
M <- KNex$mm
class(M)
dim(M)
length(M); stopifnot(length(M) == prod(dim(M)))
nnzero(M) # more relevant than length
## the above are also visible from
str(M)

也可以看看

Matrix 類還有一個 length 方法;通常,對於稀疏矩陣 M,length(M) 遠大於 nnzero(M),並且後者更好地指示了 M 的大小。

drop0zapsmall

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 The Number of Non-Zero Values of a Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。