R: Formatting Sparse Numeric Matrices Utilities

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 `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` | see `formatSpMatrix`.
`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!

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

[Package Matrix version 1.3-4 Index]