nnzero {Matrix}R Documentation

The Number of Non-Zero Values of a Matrix

Description

Returns the number of non-zero values of a numeric-like R object, and in particular an object x inheriting from class Matrix.

Usage

nnzero(x, na.counted = NA)

Arguments

x an R object, typically inheriting from class Matrix or numeric.
na.counted a logical describing how NAs should be counted. There are three possible settings for na.counted:
TRUE
NAs are counted as non-zero (since “they are not zero”).
NA
(default)the result will be NA if there are NA's in x (since “NA's are not known, i.e., may be zero”).
FALSE
NAs are omitted from x before the non-zero entries are counted.
For sparse matrices, you may often want to use na.counted = TRUE.

Value

the number of non zero entries in x (typically integer).
Note that for a symmetric sparse matrix S (i.e., inheriting from class symmetricMatrix), nnzero(S) is typically twice the length(S@x).

See Also

The Matrix class also has a length method; typically, length(M) is much larger than nnzero(M) for a sparse matrix M, and the latter is a better indication of the size of M.

Examples

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, "dgTMatrix"))
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)
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)

[Package Matrix version 0.999375-29 Index]