formatSparseM {Matrix} | R Documentation |
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 |
zero.print |
character which should be used for
structural zeroes. The default |
align |
a string specifying how the |
m |
(optional) a (standard R) |
asLogical |
should the matrix be formatted as a logical matrix
(or rather as a numeric one); mostly for |
uniDiag |
logical indicating if the diagonal entries of a sparse
unit triangular or unit-diagonal matrix should be formatted as
|
digits |
significant digits to use for printing, see
|
cx |
(optional) character matrix; a formatted version of |
iN0 |
(optional) integer vector, specifying the location of the
non-zeroes of |
col.names , note.dropping.colnames |
see |
dn |
|
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!
Author(s)
Martin Maechler
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
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))