2016-12-01 137 views
0

我代表下面的矩阵:将“稀疏矩阵”COO格式的data.frame转换为实际的稀疏矩阵类?

6 5 0 
0 5 4 
0 0 4 

作为data.frame。 R中的data.frame有三列。所述COO格式如下:

i j Xij 
1 1 6 
1 2 5 
2 2 6 
2 3 5 
3 3 6 

注意,没有行[1 3 0]行的,因为它省略了用于具有的值。同样适用于下三角值,也是零。

我想要做的就是其转换成matrix.coodgCMatrix类对象从Matrix包河

我不希望它首先转换为常规基质,因为我的数据集使用非常大,编写一个循环将其转换为标准R矩阵将需要很长时间。

+1

见'“CsparseMatrix级”'?我想你也许可以弄清楚如何使用'新(“dgCMatrix” ,...)'直接实例化这个... –

回答

2

看着?Matrix::sparseMatrix我们可以按如下方式使用已编码功能:

myMatrix <- Matrix::sparseMatrix(i = coo$i, j = coo$j, x = coo$Xij, dims = c(42, 42)) 
+0

这工作完美。我尝试了“新”(如@ ben-bolker建议),但这更灵活和直接。 – Lewkrr