drop0 {Matrix}  R Documentation 
Returns a sparse matrix with no “explicit zeroes”, i.e., all
zero or FALSE
entries are dropped from the explicitly indexed
matrix entries.
drop0(x, tol = 0, is.Csparse = NA)
x 
a Matrix, typically sparse, i.e., inheriting from

tol 
nonnegative number to be used as tolerance for checking if
an entry 
is.Csparse 
logical indicating prior knowledge about the
“Csparseness” of 
a Matrix like x
but with no explicit zeros, i.e.,
!any(x@x == 0)
, always inheriting from
CsparseMatrix
.
When a sparse matrix is the result of matrix multiplications, you
may want to consider combining drop0()
with
zapsmall()
,
see the example.
spMatrix
, class
sparseMatrix
; nnzero
m < spMatrix(10,20, i= 1:8, j=2:9, x = c(0:2,3:1))
m
drop0(m)
## A larger example:
t5 < new("dtCMatrix", Dim = c(5L, 5L), uplo = "L",
x = c(10, 1, 3, 10, 1, 10, 1, 10, 10),
i = c(0L,2L,4L, 1L, 3L,2L,4L, 3L, 4L),
p = c(0L, 3L, 5L, 7:9))
TT < kronecker(t5, kronecker(kronecker(t5,t5), t5))
IT < solve(TT)
I. < TT %*% IT ; nnzero(I.) # 697 ( = 625 + 72 )
I.0 < drop0(zapsmall(I.))
## which actually can be more efficiently achieved by
I.. < drop0(I., tol = 1e15)
stopifnot(all(I.0 == Diagonal(625)),
nnzero(I..) == 625)