[R] sparseM and kronecker product_R latest version
Martin Maechler
maechler at stat.math.ethz.ch
Tue Jan 12 15:06:46 CET 2010
>>>>> "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