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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。