# 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

1 | ```
nnzero(x, na.counted = NA)
``` |

### Arguments

`x` |
an |

`na.counted` |
a - TRUE
`NA` s*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
`NA` s are*omitted*from`x` before the non-zero entries are counted.
For sparse matrices, you may often want to use |

### 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)`

.

### Methods

`signature(x = "ANY")`

the default method for non-

`Matrix`

class objects, simply counts the number`0`

s 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.

### 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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ```
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)
``` |