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


R externalFormats 讀寫外部矩陣格式


R語言 externalFormats 位於 Matrix 包(package)。

說明

讀取以 Harwell-Boeing 或 MatrixMarket 格式存儲的矩陣,或將 sparseMatrix 對象寫入其中一種格式。

用法

readHB(file)
readMM(file)
writeMM(obj, file, ...)

參數

obj

實數稀疏矩陣

file

對於writeMM - 要寫入的文件的名稱。對於 readHBreadMM 要讀取的文件的名稱,作為字符標量。以 Harwell-Boeing 格式存儲矩陣的文件名稱通常以 ".rua"".rsa" 結尾。那些以 MatrixMarket 格式存儲的矩陣通常以 ".mtx" 結尾。

或者,readHBreadMM 接受連接對象。

...

可選的附加參數。目前沒有任何方法使用。

readHBreadMM 函數返回一個繼承自"Matrix" 類的對象。 writeMM 泛型函數的方法通常返回 NULL,並且作為副作用,矩陣 obj 會以 MatrixMarket 格式 (writeMM) 寫入 file

注意

Harwell-Boeing 格式比 MatrixMarket 格式更舊且不太靈活。函數 writeHB 已棄用,現已刪除。請改用writeMM

請注意,這些格式不了解 dimnames 的任何信息,因此它們會被 writeMM() 刪除。

導出小型稀疏矩陣 S 的一種非常簡單的方法是使用 summary(S) ,它返回 data.frame ,其中包含 ij 和可能的 x ,請參閱 sparseMatrix-class 中的 summary ,以及下麵的示例。

例子


str(pores <- readMM(system.file("external/pores_1.mtx", package = "Matrix")))
str(utm   <- readHB(system.file("external/utm300.rua" , package = "Matrix")))
str(lundA <- readMM(system.file("external/lund_a.mtx" , package = "Matrix")))
str(lundA <- readHB(system.file("external/lund_a.rsa" , package = "Matrix")))
## https://math.nist.gov/MatrixMarket/data/Harwell-Boeing/counterx/counterx.htm
str(jgl   <- readMM(system.file("external/jgl009.mtx" , package = "Matrix")))

## NOTE: The following examples take quite some time
## ----  even on a fast internet connection:
if(FALSE) {
## The URL has been corrected, but we need an untar step:
u. <- url("https://www.cise.ufl.edu/research/sparse/RB/Boeing/msc00726.tar.gz")
str(sm <- readHB(gzcon(u.)))
}

data(KNex, package = "Matrix")
## Store as MatrixMarket (".mtx") file, here inside temporary dir./folder:
(MMfile <- file.path(tempdir(), "mmMM.mtx"))
writeMM(KNex$mm, file=MMfile)
file.info(MMfile)[,c("size", "ctime")] # (some confirmation of the file's)

## very simple export - in triplet format - to text file:
data(CAex, package = "Matrix")
s.CA <- summary(CAex)
s.CA # shows  (i, j, x)  [columns of a data frame]
message("writing to ", outf <- tempfile())
write.table(s.CA, file = outf, row.names=FALSE)
## and read it back -- showing off  sparseMatrix():
str(dd <- read.table(outf, header=TRUE))
## has columns (i, j, x) -> we can use via do.call() as arguments to sparseMatrix():
mm <- do.call(sparseMatrix, dd)
stopifnot(all.equal(mm, CAex, tolerance=1e-15))

參考

https://math.nist.gov/MatrixMarket/

https://sparse.tamu.edu/

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Read and write external matrix formats。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。