nnzero-methods function

The Number of Non-Zero Values of a Matrix

The Number of Non-Zero Values of a Matrix

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

methods

nnzero(x, na.counted = NA)

Arguments

  • x: an 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.

Methods

  • signature(x = "ANY"): the default method for non-Matrix class objects, simply counts the number 0s in x, counting NA's depending on the na.counted argument, see above.
  • signature(x = "denseMatrix"): conceptually the same as for traditional matrix objects, care has to be taken for "symmetricMatrix" objects.
  • signature(x = "diagonalMatrix"), and signature(x = "indMatrix"): fast simple methods for these special "sparseMatrix" classes.
  • signature(x = "sparseMatrix"): typically, the most interesting method, also carefully taking "symmetricMatrix" objects into account.

Returns

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.

drop0, zapsmall.

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, "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)
  • Maintainer: Martin Maechler
  • License: GPL (>= 2) | file LICENCE
  • Last published: 2025-03-11

Downloads (last 30 days):