【问题标题】:Convert a data.frame in "sparse matrix" COO format into an actual sparse-matrix class?将“稀疏矩阵”COO 格式的 data.frame 转换为实际的稀疏矩阵类?
【发布时间】:2016-12-01 22:43:54
【问题描述】:

我代表以下矩阵:

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 包中转换为 matrix.coodgCMatrix 类对象。

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

【问题讨论】:

  • ?"CsparseMatrix-class":我想你大概可以弄清楚如何使用new("dgCMatrix",...)来直接实例化它...

标签: r matrix


【解决方案1】:

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

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

【讨论】:

  • 这非常有效。我尝试使用“新”(正如@ben-bolker 建议的那样),但这更灵活和直接。
猜你喜欢
  • 1970-01-01
  • 2023-04-10
  • 2021-11-25
  • 2017-07-02
  • 2017-12-04
  • 2011-10-02
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多