當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。