Learn R Programming

Matrix (version 0.999375-42)

drop0: Drop "Explicit Zeroes" from a Sparse Matrix

Description

Returns a sparse matrix with no explicit zeroes, i.e., all zero or FALSE entries are dropped from the explicitly indexed matrix entries.

Usage

drop0(x, tol = 0, is.Csparse = NA)

Arguments

x
a Matrix, typically sparse, i.e., inheriting from sparseMatrix.
tol
non-negative number to be used as tolerance for checking if an entry $x_{i,j}$ should be considered to be zero.
is.Csparse
logical indicating prior knowledge about the Csparseness of x. This exists for possible speedup reasons only.

Value

  • a Matrix like x but with no explicit zeros, i.e., !any(x@x == 0), always inheriting from CsparseMatrix.

See Also

spMatrix, class sparseMatrix

Examples

Run this code
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.))
stopifnot(all(I.0 == Diagonal(625)))

Run the code above in your browser using DataLab