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()
.
formatSpMatrix(x, digits = NULL, maxp = 1e9,
cld = getClassDef(class(x)), zero.print = ".",
col.names, note.dropping.colnames = TRUE, uniDiag = TRUE,
align = c("fancy", "right"))printSpMatrix(x, digits = NULL, maxp = max(100L, getOption("max.print")),
cld = getClassDef(class(x)),
zero.print = ".", col.names, note.dropping.colnames = TRUE,
uniDiag = TRUE, col.trailer = "",
align = c("fancy", "right"))
printSpMatrix2(x, digits = NULL, maxp = max(100L, getOption("max.print")),
zero.print = ".", col.names, note.dropping.colnames = TRUE,
uniDiag = TRUE, suppRows = NULL, suppCols = NULL,
col.trailer = if(suppCols) "......" else "",
align = c("fancy", "right"),
width = getOption("width"), fitWidth = TRUE)
significant digits to use for printing, see
print.default
, the default, NULL
,
corresponds to using getOption("digits")
.
integer, default from options(max.print)
,
influences how many entries of large matrices are printed at all.
Typically should not be smaller than around 1000; values smaller than
100 are silently “rounded up” to 100.
the class definition of x
; must be equivalent to
getClassDef(class(x))
and exists mainly for possible
speedup.
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 matrices.
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
FALSE
unless there are less than ten columns. When
TRUE
the full column names are printed.
When col.names
is a string beginning with "abb"
or
"sub"
and ending with an integer n
(i.e., of the form
"abb... <n>"
),
the column names are abbreviate()
d or
substring()
ed to (target) length n
, see the examples.
logical specifying, when
col.names
is FALSE
if the dropping of the column names
should be noted, TRUE
by default.
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”).
a string to be appended to the right of each
column; this is typically made use of by show(<sparseMatrix>)
only, when suppressing columns.
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
, i.e., the
first decimal (one left of decimal point) of the numbers printed,
whereas align = "right"
just makes use of
print(*, right = TRUE)
.
number, a positive integer, indicating the approximately
desired (line) width of the output, see also fitWidth
.
logical indicating if some effort should be made to
match the desired width
or temporarily enlarge that if deemed
necessary.
returns a character matrix with possibly empty
column names, depending on col.names
etc, see above.
return x
invisibly, see invisible
.
If x
is large, only the first rows making up the
approximately first maxp
entries is used, otherwise all of x
.
.formatSparseSimple()
is applied to (a dense version
of) the matrix. Then, formatSparseM
is used, unless
in trivial cases or for sparse matrices without x
slot.
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).
# NOT RUN {
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
## Possibilities with column names printing:
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")
# }
Run the code above in your browser using DataLab