Learn R Programming

Matrix (version 1.4-0)

formatSparseM: Formatting Sparse Numeric Matrices Utilities

Description

Utilities for formatting sparse numeric matrices in a flexible way. These functions are used by the format and print methods for sparse matrices and can be applied as well to standard R matrices. Note that all arguments but the first are optional.

formatSparseM() is the main “workhorse” of formatSpMatrix, the format method for sparse matrices.

.formatSparseSimple() is a simple helper function, also dealing with (short/empty) column names construction.

Usage

formatSparseM(x, zero.print = ".", align = c("fancy", "right"),
              m = as(x,"matrix"), asLogical=NULL, uniDiag=NULL,
              digits=NULL, cx, iN0, dn = dimnames(m))

.formatSparseSimple(m, asLogical=FALSE, digits=NULL, col.names, note.dropping.colnames = TRUE, dn=dimnames(m))

Arguments

x

an R object inheriting from class '>sparseMatrix.

zero.print

character which should be used for structural zeroes. The default "." may occasionally be replaced by " " (blank); using "0" would look almost like print()ing of non-sparse matrices.

align

a string specifying how the zero.print codes should be aligned, see formatSpMatrix.

m

(optional) a (standard R) matrix version of x.

asLogical

should the matrix be formatted as a logical matrix (or rather as a numeric one); mostly for formatSparseM().

uniDiag

logical indicating if the diagonal entries of a sparse unit triangular or unit-diagonal matrix should be formatted as "I" instead of "1" (to emphasize that the 1's are “structural”).

digits

significant digits to use for printing, see print.default.

cx

(optional) character matrix; a formatted version of x, still with strings such as "0.00" for the zeros.

iN0

(optional) integer vector, specifying the location of the non-zeroes of x.

col.names, note.dropping.colnames
dn

dimnames to be used; a list (of length two) with row and column names (or NULL).

Value

a character matrix like cx, where the zeros have been replaced with (padded versions of) zero.print. As this is a dense matrix, do not use these functions for really large (really) sparse matrices!

See Also

formatSpMatrix which calls formatSparseM() and is the format method for sparse matrices. printSpMatrix which is used by the (typically implicitly called) show and print methods for sparse matrices.

Examples

Run this code
# NOT RUN {
m <- suppressWarnings(matrix(c(0, 3.2, 0,0, 11,0,0,0,0,-7,0), 4,9))
fm <- formatSparseM(m)
noquote(fm)
## nice, but this is nicer {with "units" vertically aligned}:
print(fm, quote=FALSE, right=TRUE)
## and "the same" as :
Matrix(m)

## align = "right" is cheaper -->  the "." are not aligned:
noquote(f2 <- formatSparseM(m,align="r"))
stopifnot(f2 == fm   |   m == 0, dim(f2) == dim(m),
         (f2 == ".") == (m == 0))
# }

Run the code above in your browser using DataLab