Søren Højsgaard
2012-Jul-28 12:26 UTC
[R] Creating sparse matrix of type "dgCMatrix" directly
I want to create a sparse matrix of type "dgCMatrix" using the Matrix package (and the matrix must be of this type even if other more compact representations may exist). I do> library(Matrix) > m1<-Matrix(rep(1,4),nrow=2,ncol=2,sparse=T) > m12 x 2 sparse Matrix of class "dsCMatrix" [1,] 1 1 [2,] 1 1 To convert m1, I do> as(m1, "dgCMatrix")2 x 2 sparse Matrix of class "dgCMatrix" [1,] 1 1 [2,] 1 1 Is it possible to construct a dgCMatrix "directly" i.e. without going through the additional as() step above? Best regards S?ren
Douglas Bates
2012-Jul-28 18:36 UTC
[R] Creating sparse matrix of type "dgCMatrix" directly
On Sat, Jul 28, 2012 at 7:26 AM, S?ren H?jsgaard <sorenh at math.aau.dk> wrote:> I want to create a sparse matrix of type "dgCMatrix" using the Matrix package (and the matrix must be of this type even if other more compact representations may exist). I do > >> library(Matrix) >> m1<-Matrix(rep(1,4),nrow=2,ncol=2,sparse=T) >> m1 > 2 x 2 sparse Matrix of class "dsCMatrix" > > [1,] 1 1 > [2,] 1 1 > > To convert m1, I do >> as(m1, "dgCMatrix") > 2 x 2 sparse Matrix of class "dgCMatrix" > > [1,] 1 1 > [2,] 1 1 > > Is it possible to construct a dgCMatrix "directly" i.e. without going through the additional as() step above?The Matrix function is a high-level function that is designed to produce a compact and informative representation of its arguments. That's why it checks for symmetry, triangularity, etc. To decide how to bypass these checks it would be useful to know what you are starting with. Will it be a dense matrix or a triplet representation or ...?