Thomas Lumley <tlumley <at> u.washington.edu> writes: > I want to construct a symmetric band matrix in the Matrix > package from a matrix where the first column > contains data for the main diagonal, the second column > has data for the first subdiagonal/superdiagonal > and so on. > > Since the Matrix will be 10^5 x 10^5 or so, with perhaps > 10-20 non-zero elements above the diagonal per row, I > can't do it by constructing a full matrix and then using the band() > function to subset it to a band matrix. > > Any suggestions? > > -thomas > > Thomas Lumley Assoc. Professor, Biostatistics > tlumley <at> u.washington.edu University of Washington, Seattle > I'm not expert but just looking at the package, perhaps the spMatrix function (constructor) would do it.
spMatrix(5, 5, c(2:5, 1:5, 1:4), c(1:4, 1:5, 2:5), rnorm(13)) 5 x 5 sparse Matrix of class "dgTMatrix" [1,] -1.7109379 -0.5576860 . . . [2,] -0.3219899 -0.9294558 0.001323253 . . [3,] . 0.4099070 0.646068453 0.5388224 . [4,] . . -1.007848357 -0.1117796 -0.5555834 [5,] . . . -0.6816979 -0.6052127 Ken -- Ken Knoblauch Inserm U846 Stem-cell and Brain Research Institute Department of Integrative Neurosciences 18 avenue du Doyen Lépine 69500 Bron France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: +33 (0)6 84 10 64 10 http://www.sbri.fr/members/kenneth-knoblauch.html ______________________________________________ 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.