>>>>> "am" == alessia matano <alexis....@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 ______________________________________________ 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.