It is a simple problem in that I simply want to convert the For loop to a more efficient method.  It simply loops through a large vector checking if the numeric element is not equal to the index of that element.  The following example demonstrates a simplified example:

> rows <- 10
> collusionM <- Matrix(0,10,10,sparse=TRUE)
> matchM <- matrix(c(1,2,3,4,4,6,7,9,9,10))
> 
> for (j in 1:rows) if (j != matchM[j]) collusionM[j,matchM[j]] <- collusionM[j,matchM[j]]+1
> collusionM
10 x 10 sparse Matrix of class "dgCMatrix"
                         
 [1,] . . . . . . . . . .
 [2,] . . . . . . . . . .
 [3,] . . . . . . . . . .
 [4,] . . . . . . . . . .
 [5,] . . . 1 . . . . . .
 [6,] . . . . . . . . . .
 [7,] . . . . . . . . . .
 [8,] . . . . . . . . 1 .
 [9,] . . . . . . . . . .
[10,] . . . . . . . . . .

Again, this works, I just need the for loop to be more efficient as in my application rows=37000, and I need to do this 100 times.

Thanks.
	[[alternative HTML version deleted]]

