2015-10-17 223 views
0

我有一個尺寸爲65100 * 65100的大矩陣,它是R中類「dsCMatrix」的稀疏矩陣。我怎麼能擺脫這個稀疏矩陣,因爲我很難將這個矩陣保存爲「寫入」函數R.是否有將整個稀疏矩陣保存爲常規矩陣的方法?如何將類「dsCMatrix」的稀疏矩陣轉換爲R中的正則矩陣?

問候

SAJ

+0

可能應該遷移到CV。可以找到[this](http://stats.stackexchange.com/questions/35185/dimensionality-reduction-svd-or-pca-on-a-large-sparse-matrix)有幫助。 –

+0

@ WhiteViking:在我使用as.matrix()之後,我收到了以下錯誤消息:asMethod(object)中的錯誤:Cholmod錯誤'problem too large'at ../Core/cholmod_dense.c,line 105 – user4665665

+1

像往常一樣@ RichardScriven是正確的:-)你能否添加一個可重複的例子,導致「問題太大」的錯誤?例如使用隨機數據。 – WhiteViking

回答

0

剛上dsCMatrix使用as.matrix()。這裏有一個例子:

library(Matrix) 
m <- Matrix(toeplitz(c(10, 0, 1, 0, 3)), sparse = TRUE) 
m 

# 5 x 5 sparse Matrix of class "dsCMatrix" 
#     
# [1,] 10 . 1 . 3 
# [2,] . 10 . 1 . 
# [3,] 1 . 10 . 1 
# [4,] . 1 . 10 . 
# [5,] 3 . 1 . 10 

as.matrix(m) 

#  [,1] [,2] [,3] [,4] [,5] 
# [1,] 10 0 1 0 3 
# [2,] 0 10 0 1 0 
# [3,] 1 0 10 0 1 
# [4,] 0 1 0 10 0 
# [5,] 3 0 1 0 10 
+2

這個建議適用於小矩陣維度,但不適合我的情況。 asMethod(object)錯誤:在文件../Core/cholmod_dense.c中,第105行的Cholmod錯誤'問題太大' – user4665665