Learn R Programming

Matrix (version 1.0-4)

printSpMatrix: Format and Print Sparse Matrices Flexibly

Description

Format and print sparse matrices flexibly. These are the workhorses used by the format, show and print methods for sparse matrices. If x is large, printSpMatrix2(x) calls printSpMatrix() twice, namely, for the first and the last few rows, suppressing those in between, and also suppresses columns when x is too wide.

printSpMatrix() basically prints the result of formatSpMatrix().

Usage

formatSpMatrix(x, digits = NULL, maxp = 1e9,
               cld = getClassDef(class(x)), zero.print = ".",
               col.names, note.dropping.colnames = TRUE,
               align = c("fancy", "right"))

printSpMatrix(x, digits = NULL, maxp = getOption("max.print"), cld = getClassDef(class(x)), zero.print = ".", col.names, note.dropping.colnames = TRUE, col.trailer = "", align = c("fancy", "right"))

printSpMatrix2(x, digits = NULL, maxp = getOption("max.print"), zero.print = ".", col.names, note.dropping.colnames = TRUE, suppRows = NULL, suppCols = NULL, col.trailer = if(suppCols) "......" else "", align = c("fancy", "right"))

Arguments

x
an Robject inheriting from class sparseMatrix.
digits
significant digits to use for printing, see print.default, the default, NULL, corresponds to using getOpti
maxp
integer, default from options(max.print), influences how many entries of large matrices are printed at all.
cld
the class definition of x; must be equivalent to getClassDef(class(x)) and exists mainly for possible speedup.
zero.print
character which should be printed for structural zeroes. The default "." may occasionally be replaced by " " (blank); using "0" would look almost like print()ing of non-sparse matri
col.names
logical or string specifying if and how column names of x should be printed, possibly abbreviated. The default is taken from options("sparse.colnames") if that is set, otherwise
note.dropping.colnames
logical specifying, when col.names is FALSE if the dropping of the column names should be noted, TRUE by default.
col.trailer
a string to be appended to the right of each column; this is typically made use of by show() only, when suppressing columns.
suppRows, suppCols
logicals or NULL, for printSpMatrix2() specifying if rows or columns should be suppressed in printing. If NULL, sensible defaults are determined from dim(x) a
align
a string specifying how the zero.print codes should be aligned, i.e., padded as strings. The default, "fancy", takes some effort to align the typical zero.print = "." with the position of 0,

Value

  • formatSpMatrix()returns a character matrix with possibly empty column names, depending on col.names etc, see above.
  • printSpMatrix*()return x invisibly, see invisible.

Details

[object Object]

See Also

the virtual class sparseMatrix and the classes extending it; maybe sparseMatrix or spMatrix as simple constructors of such matrices.

The underlying utilities formatSparseM and .formatSparseSimple() (on the same page).

Examples

Run this code
f1 <- gl(5, 3, labels = LETTERS[1:5])
X <- as(f1, "sparseMatrix")
X ## <==>  show(X)  <==>  print(X)
t(X) ## shows column names, since only 5 columns

X2 <- as(gl(12, 3, labels = paste(LETTERS[1:12],"c",sep=".")),
         "sparseMatrix")
X2
## less nice, but possible:
print(X2, col.names = TRUE) # use [,1] [,2] .. => does not fit

t(X2) # suppressing column names
print(t(X2), col.names=TRUE)
print(t(X2), zero.print = "", col.names="abbr. 1")
print(t(X2), zero.print = "-", col.names="substring 2")

op <- options(max.print = 25000, width = 80)
sink(print(tempfile()))
M <- Matrix(0, 10000, 100)
M[1,1] <- M[2,3] <- 3.14
stopifnot((st <- system.time(show(M)))[1] < 1.0) # only 0.09 on cmath-3
sink()
st
options(op)

Run the code above in your browser using DataLab