2016-12-01 171 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