转换"稀疏矩阵"中的data.frame将COO格式转换为实际的稀疏矩阵类?

时间:2016-12-01 22:43:54

标签: r matrix

我代表以下矩阵:

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]行,因为它的值为而省略。这同样适用于下三角值,也是零。

我想要做的是将其转换为来自R中matrix.coo包的dgCMatrixMatrix类对象。

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

1 个答案:

答案 0 :(得分:2)

查看?Matrix::sparseMatrix我们可以使用已编码的函数,如下所示:

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