在R中读取稀疏矩阵时出错

时间:2016-10-29 02:40:41

标签: r matrix sparse-matrix

我试图在R中读取具有对称稀疏矩阵的.mtx文件。我使用的是e1071软件包和以下命令:

read.matrix.csr("filename.mtx")

但我收到以下错误:

  

rja [,2]中的错误:下标超出范围   另外:警告信息:   在read.matrix.csr(" soc-twitter-follows.mtx"):强制引入的NA

我尝试了其他.mtx文件,但我一直遇到同样的错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你确定你的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')