[R] Creating sparse matrix of type "dgCMatrix" directly

Douglas Bates bates at stat.wisc.edu
Sat Jul 28 20:36:09 CEST 2012


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 ...?



More information about the R-help mailing list