Control Structures Loops in R

February 27, 2016

(This article was first published on Data Perspective, and kindly contributed to R-bloggers)

As part of Data Science tutorial Series in my previous post I posted on basic data types in R. I have kept the tutorial very simple so that beginners of R programming  may takeoff immediately.
Please find the online R editor at the end of the post so that you can execute the code on the page itself.
In this section we learn about control structures loops used in R. Control strcutures in R contains conditionals, loop statements like any other programming languages.

Loops are very important and forms backbone to any programming languages.Before we get into the control structures in R, just type as below in Rstudio:


If else statement:

#See the code syntax below for if else statement 
print("x is greater than 1")
print("x is less than 1")

#See the code below for nested if else statement

if(x>1 & x<7){
print("x is between 1 and 7")}else if(x>8 & x< 15){
print("x is between 8 and 15")

[1] "x is between 8 and 15"

For loops:
As we know for loops are used for iterating items

 #Below code shows for  loop implementation
x = c(1,2,3,4,5)
for(i in 1:5){
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

While loop :

 #Below code shows while loop in R
x = 2.987
while(x <= 4.987) {
x = x + 0.987
[1] 3.974 1.974 2.974
[1] 4.961 2.961 3.961
[1] 5.948 3.948 4.948

Repeat Loop:
The repeat loop is an infinite loop and used in association with a break statement.

 #Below code shows repeat loop:
a = 1
repeat { print(a) a = a+1 if(a > 4) break }
[1] 1
[1] 2
[1] 3
[1] 4

Break statement:
A break statement is used in a loop to stop the iterations and flow the control outside of the loop.

 #Below code shows break statement:
x = 1:10
for (i in x){
if (i == 2){
[1] 1

Next statement:
Next statement enables to skip the current iteration of a loop without terminating it.

 #Below code shows next statement 
x = 1: 4
for (i in x) {
if (i == 2){
[1] 1
[1] 3
[1] 4

Creating a function in R:
function() is a built-in R function whose job is to create functions. In the below example function() takes one parameter x, executes a for loop logic.
The function object thus created using function() is assigned to a variable (‘words.names’). Now this created function will be called using the variable ‘word.names’

 #Below code shows us, how a function is created in R:

function_name = function(parameters,..){ code}

words = c("R", "datascience", "machinelearning","algorithms","AI")
words.names = function(x) {
for(name in x){
#Calling the function
[1] "R"
[1] "datascience"
[1] "machinelearning"
[1] "algorithms"
[1] "AI"

Hands on exercise of what we have learnt so far

We create a data frame DF, run for loop, ifelse in a function and call the function
#create 3 vectors name,age,salary
name = c("David","John","Mathew")
age = c(30,40,50)
salary = c(30000,120000,55000)
#create a data frame DF by combining the 3 vectors using cbind() function
DF = data.frame(cbind(name,Age,salary))
#display DF
name Age salary
1 David 30 30000
2 John 40 120000
3 Mathew 50 55000
#dimensions of DF
[1] 3 3

#write a function which displays the salaried person name
findHighSalary = function(df){
Maxsal = 0
empname = ""
for(i in 1:nrow(DF)){
tmpsal = as.numeric(DF[i,3] )
if(tmpsal > Maxsal){
Maxsal = tmpsal
empname = DF[i,1]
#calling the function
[1] "Mathew"

To leave a comment for the author, please follow the link and comment on their blog: Data Perspective. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.


Mango solutions

RStudio homepage

Zero Inflated Models and Generalized Linear Mixed Models with R

Quantide: statistical consulting and training


CRC R books series

Contact us if you wish to help support R-bloggers, and place your banner here.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)