【问题标题】:Error when reading sparse matrix in R在 R 中读取稀疏矩阵时出错
【发布时间】:2017-03-11 23:07:27
【问题描述】:
我正在尝试读取 R 中具有对称稀疏矩阵的 .mtx 文件。我正在使用 e1071 包和以下命令:
read.matrix.csr("filename.mtx")
但我收到以下错误:
rja[, 2] 中的错误:下标越界
另外:警告信息:
在 read.matrix.csr("soc-twitter-follows.mtx") 中:强制引入的 NAs
我尝试了其他 .mtx 文件,但我不断收到相同的错误。有什么想法吗?
【问题讨论】:
标签:
r
matrix
sparse-matrix
【解决方案1】:
你确定你的 mtx 文件真的是 csr 格式吗?
如果我尝试使用 e1071 的 read.matrix.csr 从 Matrix 包中打开 mtx 文件,我会遇到与您相同的错误。
但是,我可以使用 Matrix::readMM 打开该文件,然后使用 write.matrix.csr(来自 Matrix)保存它。那时,我知道我有一个有效的 csr 文件,它确实可以用 e1071::read.matrix.csr 打开。
library(Matrix)
library(e1071)
e1071::read.matrix.csr(system.file("external/pores_1.mtx", package = "Matrix"))
pores <-
Matrix::readMM(system.file("external/pores_1.mtx", package = "Matrix"))
write.matrix.csr(x = pores, file = 'pores.csr')
from.csr <- e1071::read.matrix.csr('pores.csr')