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.

Reply via email to