-----Original Message-----
From: dmba...@gmail.com [mailto:dmba...@gmail.com] On Behalf Of Douglas Bates
Sent: 28. juli 2012 20:36
To: Søren Højsgaard
Cc: r-help@r-project.org
Subject: Re: [R] Creating sparse matrix of type "dgCMatrix" directly

On Sat, Jul 28, 2012 at 7:26 AM, Søren Højsgaard <sor...@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 ...?

[>>] Dear Doug,
[>>] I use sparse matrices to represent graphs so the matrices contain zeros 
and non-zeros (in most cases ones). I need the matrices to be of the dgCMatrix 
type because these matrices can be used as sparse matrices in the RcppEigen 
package. For now I have created my own dgCMatrix() function doing what I've 
sketched above, but there is - as you also indicate - an overhead in the checks 
in the Matrix() function, and also an overhead in using as().
Regards
Søren

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to