当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R printSpMatrix 灵活格式化和打印稀疏矩阵


R语言 printSpMatrix 位于 Matrix 包(package)。

说明

灵活格式化和打印稀疏矩阵。这些是稀疏矩阵的 formatshowprint 方法使用的 “workhorses”。如果x很大,printSpMatrix2(x)会调用printSpMatrix()两次,即针对第一行和最后几行,抑制中间的行,并且当x太宽时也会抑制列。

printSpMatrix() 本质上打印 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)

参数

x

一个R对象继承自类sparseMatrix.

digits

用于打印的有效数字,请参阅 print.default ,默认值 NULL 对应于使用 getOption("digits")

maxp

整数,默认来自 options(max.print) ,影响打印大矩阵的条目数。通常不应小于 1000 左右;小于 100 的值会默认 “rounded up” 为 100。

cld

x 的类定义;必须等同于 getClassDef(class(x)) 并且主要是为了可能的加速而存在。

zero.print

应该为结构零打印的字符。默认的"."有时可能会被" "(空白)替换;使用 "0" 看起来几乎就像非稀疏矩阵的 print() ing。

col.names

逻辑或字符串指定列名是否以及如何x应打印出来,可能会缩写。默认值取自options("sparse.colnames")如果已设置,否则FALSE除非少于十列。什么时候TRUE打印完整的列名称。
什么时候col.names是一个以"abb"或者"sub"并以整数结尾n(即,形式"abb... <n>"),列名是abbreviate()d 或substring()编辑至(目标)长度n,请参阅示例。

note.dropping.colnames

逻辑指定,当col.namesFALSE时,如果要注意删除列名,则默认为TRUE

uniDiag

逻辑指示稀疏单位三角形或unit-diagonal矩阵的对角线条目是否应格式化为"I"而不是"1"(强调1是“structural”)。

col.trailer

要附加到每列右侧的字符串;这通常仅由 show(<sparseMatrix>) 在抑制列时使用。

suppRows , suppCols

逻辑或 NULL ,用于 printSpMatrix2() 指定在打印时是否应抑制行或列。如果是 NULL ,则根据 dim(x)options(c("width", "max.print")) 确定合理的默认值。将两者都设置为 FALSE 可能是一个非常糟糕的主意。

align

一个字符串,指定 zero.print 代码应如何对齐,即作为字符串填充。默认值 "fancy" 需要一些努力将典型的 zero.print = "."0 的位置对齐,即打印数字的第一个小数(小数点左边一个),而 align = "right" 只是利用print(*, right = TRUE)

width

number,一个正整数,表示输出的大约所需(线)宽度,另请参见 fitWidth

fitWidth

逻辑指示是否应该做出一些努力来匹配所需的width,或者如果认为有必要的话暂时扩大它。

细节

格式SpMatrix:

如果 x 很大,则仅使用构成大约第一个 maxp 条目的第一行,否则使用所有 x.formatSparseSimple() 应用于矩阵(密集版本)。然后,使用formatSparseM,除非在微不足道的情况下或对于没有x槽的稀疏矩阵。

formatSpMatrix()

返回一个字符矩阵,列名可能为空,具体取决于 col.names 等,请参见上文。

printSpMatrix*()

不可见地返回x,请参阅invisible

例子

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


作者

Martin Maechler

也可以看看

虚拟类 sparseMatrix 及其扩展类;也许sparseMatrixspMatrix 作为此类矩阵的简单构造函数。

底层实用程序formatSparseM.formatSparseSimple()(在同一页面上)。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Format and Print Sparse Matrices Flexibly。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。