[R] Nested for loops

Michael Knudsen micknudsen at gmail.com
Tue Jul 14 07:38:54 CEST 2009


Hi,

I have spent some time locating a quite subtle (at least in my
opinion) bug in my code. I want two nested for loops traversing the
above-diagonal part of a square matrix. In pseudo code it would
something like

for i = 1 to 10
{
   for j = i+1 to 10
   {
      // do something
   }
}

However, trying to do the same in R, my first try was

for (i in 1:10)
{
   for (j in (i+1):10)
   {
       // do something
   }
}

but there's a problem here. For i=10, the last for loop is over 11:10.
Usually programming laguages would regard what corresponds to 11:10 as
empty, but A:B with A bigger than B is in R interpreted as the numbers
from B to A in reverse order.

Is there a clever way to make nested loops like the one above in R?

-- 
Michael Knudsen
micknudsen at gmail.com
http://lifeofknudsen.blogspot.com/




More information about the R-help mailing list