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 earlierdata(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 fromstr(M)