On 19-03-2012, at 22:07, David Stevens wrote: > I'm a bit clumsy about many things in R. Here's my problem. I'm trying to > build a square sparse matrix and populate it without looping (bad practice, > right). I have vectors of matched row/column pairs for which the matrix > entries have common characteristics and am look for a way to fill the > entries. So, if the matrix is A[20 by 20], and I might have rows > > iRows <- c(2,3,4,6,7,8,10,11,12,14,15,16,18,19) > > and columns > > iCols <- c(1,2,3,5,6,7,9,10,11,13,14,15,17,18) > > and you see these are most of the subdiagonal terms in A from rows 2-19. They > are all calculated in a similar way using values from a data frame in which > the terms are generally in iRows and iCols. > > I could loop through each pair and all's well, but my question is whether > there's an R-certified alternative, that will speed things up when the matrix > is much larger (it will be - this is a prototype). > > Any thoughts?
pIndex <- cbind(iRows,iCols) A <- matrix(0,nrow=20,ncol=20) A[pIndex] <- 9 A Berend ______________________________________________ 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.