[R] sparseM and kronecker product_R latest version

alessia matano alexis.rtd at gmail.com
Tue Jan 12 18:34:53 CET 2010


I see, now I got it.

and thanks for the example with matrix.
best
alessia

2010/1/12 Martin Maechler <maechler at stat.math.ethz.ch>:
>>>>>> "am" == alessia matano <alexis.rtd at gmail.com>
>>>>>>     on Mon, 11 Jan 2010 16:20:57 +0100 writes:
>
>    am> Many thanks for it.
>    am> However it is strange that when I put the numbers rather than ncol(R)
>    am> (a matrix with ncol=36698) it worked. Look below
>
>    >> dim(res2)
>    am> [1] 170471  25822
>    >> D<- as.matrix.csr(0,nrow(tmpb),25822)
>    >> D<- as.matrix.csr(0,nrow(tmpb),ncol(res2))
>    am> Error in if (length(x) == nrow * ncol) x <- matrix(x, nrow, ncol) else { :
>    am> missing value where TRUE/FALSE needed
>    am> In addition: Warning message:
>    am> In nrow * ncol : NAs produced by integer overflow
>
>    am> But probably it is true what you said, anyway.
>
> yes, it is true.
> The clue is that  typeof(25822)   is "double" and not "integer".
>
>    am> So, do you suggest me to use directly the simple matrix command? or a
>    am> kind of sparse matrix within your package?!?
>
> the latter, e.g.,
>
>  library(Matrix)
>  D <- Matrix(0, nrow = 113289, ncol=36698)
>  ## or
>  D. <- sparseMatrix(x=double(0), i=integer(0), j=integer(0),
>                    dims = c(113289,36698))
>  identical(D, D.) ##--> TRUE
>
> ## and, e.g.,
>
>> Dk <- kronecker(D, Diagonal(x=5:2))
>> identical(Dk, D %x% Diagonal(x = 5:2))
> [1] TRUE
>> dim(D)
> [1] 113289  36698
>> dim(Dk)
> [1] 453156 146792
>>
>
> Regards,
> Martin Maechler, ETH Zurich
>



More information about the R-help mailing list