2015-10-17 152 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