[R] Nested for loops

Gabor Grothendieck ggrothendieck at gmail.com
Tue Jul 14 14:29:58 CEST 2009


Try this:

seq. <- function(from, to) seq(from = from, length = max(0, to - from + 1))

seq.(11, 10)



On Tue, Jul 14, 2009 at 1:38 AM, Michael Knudsen<micknudsen at gmail.com> wrote:
> 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/
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list