Open In App

How to Create a Nested For Loop in R?

Last Updated : 02 Feb, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

A loop in a programming language is a sequence of instructions executed one after the other unless a final condition is met. Using loops is quite frequent in a program.

Need of a loop

Let us consider a scenario where we want to print natural numbers from 1 to 3. We can simply print them one by one. But suppose the range is high, 1 to 100 or 1 to 10000 or even 1 to 100000, then printing them one by one is a tedious task. In such cases, loops are quite efficient and also improve the readability of the source code. In R, loops are broadly classified into three categories:  for, while, and repeat. This article focuses upon the working of For-loop in R.

For loop in R:

For loop is one of the commonly used types of loops. It is a control statement that is used in scenarios where multiple statements are required to be executed. In R, for loop follows the below syntax.

Syntax:

for (element in sequence) {

     // body

}

Here, an element is the actual value in the sequence one after the another and starting from the beginning.

Nested for loop in R:

A nested for-loop has a for-loop inside of another for-loop. For each of the iteration in the outer for-loop, the inner loop will be executed unless a final condition is met for the inner loop. Once an inner for-loop is executed for a particular outer iteration then the outer for-loop goes for the next iteration and now the inner loop will be executed for this iteration. This process repeats itself till the final condition is met for the outer for-loop. Nested for-loop can be visualized as iterating over integer coordinates one by one in a two-dimensional space. For example, printing 

(0,0)   (0,1)   (0,2)
(1,0)   (1,1)   (1,2)
(2,0)   (2,1)   (2,2) 
(3,0)   (3,1)   (3,2) 

Below is the syntax of nested for-loop in R.

Syntax:

for (element1 in sequence1) {

     for(element2 in sequence2)

          // body

}

Example 1: In the below program we are iterating over 0 to 3 in the outer loop and for each value in the outer for-loop, we are iterating over 0 to 3 in the inner for-loop.

R




# R program to illustrate the working of
# nested for-loop 
  
# Iterating over 0 to 3 in the outer
# for-loop
for (x in 0:3){
        
      # Iterating over 0 to 3 in the inner 
    # for-loop
      for (y in 0:3)
    {
        # Print x and y 
          print(paste("(", x, ",", y, ")"))
  
    }
}


Output:

Example 2: In the below program we are iterating over 1 to 5 in the outer loop and for each of the values in the outer for-loop, we are iterating over 1 to 5 in the inner for-loop and simultaneously printing the sum of the two values.

R




# R program to illustrate the working 
# of nested for-loop
  
# Iterating over 1 to 5 in the outer 
# for-loop
for(number1 in 1:5)
{
      # Iterating over 1 to 5 in the inner 
    # for-loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "="
                    number1 + number2));
    }
}


Output:

Next statement:

Most of the languages provide functionality using which we can skip the current iteration at the moment and go for the next iteration if it exists. For this purpose, we have the “next” statement in R.

Example 1: In the below program we are skipping the inner for-loop if the value of number1 is equal to one.

R




# R program to illustrate the working
# of next statement in nested for-loop
  
# Iterating over outer loop
for(number1 in 1:5)
{
      if(number1 == 1)
      next
      # Iterating over outer loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=",
                    number1 + number2));
    }
}


Output:

Example 2: In the below program we are skipping the print statement if the value of number2 is equal to one in the inner for-loop.

R




# R program to illustrate the working
# of next statement in nested for-loop
  
# Iterating over outer loop
for(number1 in 1:5)
{
      # Iterating over outer loop
    for(number2 in 1:5)
    {
        # If number1 is equal to 1
        # Then skip the print statement below
        # and move to the next iteration
        if(number2 == 1)
              next
        
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=",
                    number1 + number2));
    }


Output:

Break statement:

Most of the languages provide functionality using which we can stop the iteration of for-loop at the moment and come out of the current for-loop scope. For this purpose, we have the “break” statement in R. Break statement in R is the same as the break statement in C or C++.

Example 1: In the below program the flow of control of the outer for-loop comes out of the scope once the value of number1 reaches towards 2.

R




# R program to illustrate the working
# of break statement in nested for-loop
  
# Iterating over 1 to 5 in outer for-loop
for(number1 in 1:5)
{
    # If number1 is equal to 2
    # then break the flow of control
    # and come out of the outer loop
      if(number1 == 2)
      break
        
    # Iterating over 1 to 5 in inner for-loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "="
                    number1 + number2));
    }
}


Output:

Example 2: In the below program the flow of control of the inner for-loop comes out of the scope once the value of number2 reaches towards 2.

R




# R program to illustrate the working of
# break statement in nested for-loop
  
# Iterating over 1 to 5 in the outer for-loop
for(number1 in 1:5)
{
  
# Iterating over 1 to 5 in the inner for-loop
    for(number2 in 1:5)
    {
        # If number2 is equal to 2 then stop
        # the flow of control
        # and come out of the inner for-loop at the moment
        if(number2 == 2)
            break
              
          # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "="
                    number1 + number2));
    }
}


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads