[R] Matrix indexing in a loop

From: Mills, Jason <Jason.Mills_at_afhe.ualberta.ca>
Date: Sat 18 Feb 2006 - 08:35:47 EST

How do you specify matrix location a[i,j] (or a[i-1,j], etc.) in a "for" loop?

I am looking for a flexible method of indexing neighbors over a series of lags (1,2,3...) and I may wish to extend this method to 3D arrays.

Example:

Data matrix
> fun

     [,1] [,2] [,3]

[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12


For each element a[i,j] in "fun", sum the 1st order (Rook's) neighbors:

a[i-1,j]

a[i+1,j]

a[i,j-1]

a[i,j+1]

Then divide by the number of elements included as neighbors-- this number depends on the location of a[i,j] in the matrix.

Insert the product of the neighbor calculation for each a[i,j] into the corresponding position b[i,j] in an empty matrix with the same dimensions as "fun".

For example, element [2,2] in "fun" should yield element [2,2] in a new matrix equal to 24/4=6. Of course, element [1,1] in the new matrix should be the product of only two numbers.

Thanks

J. Mills

        [[alternative HTML version deleted]]



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Feb 18 08:39:55 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:34 EST