by: babak babaabasi

R If … Else

Conditions and If Statements

x = readline(prompt="Enter an integer number: ")



if(x>3) print("Positive")
if(x<7) print("negative")

Write the R script that take two integers as input and print out the larger number.

A = as.numeric(readline(prompt="Enter first numbera: "))
B = as.numeric(readline(prompt="Enter second number: "))
if(A > B) print(A)
if(B > A) print(B)

x = as.integer(readline(prompt="Enter an integer number: "))
if(x>0) print("Positive") else print("Negative")

You can also run a condition in an if statement, which you will learn much more about in the if..else chapter.

a = 200
b = 33

if (b > a) {
  print ("b is greater than a")
} else {
  print("b is not greater than a")
} 
if (b > a) {
  (b*4)
} else {
  (b*2)
} 

A = as.integer(readline(prompt="Enter an integer number: "))
B = as.integer(readline(prompt="Enter an integer threshold: "))
if(A > B){
print(paste(A, "is greater than threshold ", B), quote=F)
} else if (A < B){
print(paste(A, "is less than threshold ", B), quote=F)
} else {
print (paste(A, "is equal to threshold ", B), quote=F)
}
a <- 200
b <- 33

if (b > a) {
  print("b is greater than a")
} else if (a == b) {
  print("a and b are equal")
} else {
  print("a is greater than b")
} 

Nested If Statements

x <- 44

if (x > 10) {
  print("Above ten")
  if (x > 20) {
    print("and also above 20!")
  } else {
    print("but not above 20.")
  }
} else {
  print("below 10.")
} 

AND

The & symbol (and) is a logical operator, and is used to combine conditional statements:

a <- 200
b <- 33
c <- 500

if (a > b & c > a){
  print("Both conditions are true")
}

OR

The | symbol (or) is a logical operator, and is used to combine conditional statements:

a <- 200
b <- 33
c <- 500

if (a > b | a > c){
  print("At least one of the conditions is true")
} 

R While Loop

i = 1
while (i < 6) {
print(i)
i = i+1
}
a=c(45,67,89,90,56,44,78,34)
i = 1
l=length(a)
f=0
while (i <= l) {
  f=a[i]+f
  i = i+1
  m=f/l
  print(m)
}
# R program to illustrate
# application of while loop
 
# assigning value to the variable
# whose factorial will be calculated
n < - 5
 
# assigning the factorial variable
# and iteration variable to 1
factorial < - 1
i < - 1
 
# using while loop
while (i <= n)
{
 
    # multiplying the factorial variable
    # with the iteration variable
    factorial = factorial * i
 
    # incrementing the iteration variable
    i = i + 1
}
 
# displaying the factorial
print(factorial)


n = 5
factorial = 1
i = 1

while (i <= n){
    factorial = factorial * i
    i = i + 1
}

print(factorial)

R For Loop

for (val in sequence)
{
statement
}
f = c(2,5,3,9,8,11,6,11,12,20)
count = 0
for (val in f) {
if(val %% 2 == 0)  
count = count+1
}
print(count)

factorial by for

num =6
factorial = 1
for(i in 1:num) {
factorial = factorial * i
}
print(paste("The factorial of", num ,"is",factorial))

factorial by for

# take input from the user
num = as.integer(readline(prompt="Enter a number: "))
factorial = 1
# check is the number is negative, positive or zero
if(num < 0) {
print("Sorry, factorial does not exist for negative numbers")
} else if(num == 0) {
print("The factorial of 0 is 1")
} else {
for(i in 1:num) {
factorial = factorial * i
}
print(paste("The factorial of", num ,"is",factorial))
}

break statement

x <- 1:5
for (val in x) {
if (val == 3){
break
}
print(val)
}

Function

my_function <- function() {
  print("Hello World!")
}
my_function() # call the function named my_function =
meanlog=function(x,y){
  b=log(mean(x)+mean(y))
  print(b)
}
a=c(45,67,89,90)
h=c(2,4,55,67,88)
t=c(55,67,99,89)
meanlog(a,t)
novin = function(x,y) {
  paste(x,"hasani",y, "bagheri")
}



novin("zahra","hoseen")
bmi = function(ghad,vazn) {
  x=vazn/(ghad^2)
  print(paste(x,"your bmi"))
}




bmi(1.60,65)
my_function = function(fname, lname) {
  paste(fname, lname)
}

my_function("Peter", "Griffin") 

Default Parameter Value

The following example shows how to use a default parameter value.

If we call the function without an argument, it uses the default value:

my_function <- function(country = "Norway") {
  paste("I am from", country)
}

my_function("Sweden")
my_function("India")
my_function() # will get the default value, which is Norway
my_function("USA") 

Return Values

To let a function return a result, use the return() function:

my_function <- function(x) {
  return (5 * x)
}

print(my_function(3))
print(my_function(5))
print(my_function(9))
v=c(5,6,8,9,14)
rescale <- function(v) { # Rescales a vector, v, to lie in the range 0 to 1.
L <- min(v)
H <- max(v)
result <- (v - L) / (H - L)
return(result)
}
rescale(v)
sahar=function(n){
  factorial = 1
  i = 1
while (i <= n)
{
    factorial = factorial * i
    i = i + 1
}
print(factorial)
}
sahar(5)

END(1-2)

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgd29yZF9kb2N1bWVudDogZGVmYXVsdA0KICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQNCi0tLQ0KDQpieTogYmFiYWsgYmFiYWFiYXNpDQoNCiMjIFIgSWYgLi4uIEVsc2UNCg0KIyMjIENvbmRpdGlvbnMgYW5kIElmIFN0YXRlbWVudHMNCg0KIVtdKGltYWdlcy8wMDE5LmdpZikNCg0KYGBge3J9DQp4ID0gcmVhZGxpbmUocHJvbXB0PSJFbnRlciBhbiBpbnRlZ2VyIG51bWJlcjogIikNCg0KDQoNCmlmKHg+MykgcHJpbnQoIlBvc2l0aXZlIikNCmlmKHg8NykgcHJpbnQoIm5lZ2F0aXZlIikNCmBgYA0KDQpXcml0ZSB0aGUgUiBzY3JpcHQgdGhhdCB0YWtlIHR3byBpbnRlZ2VycyBhcyBpbnB1dCBhbmQgcHJpbnQgb3V0IHRoZSBsYXJnZXIgbnVtYmVyLg0KDQpgYGB7cn0NCkEgPSBhcy5udW1lcmljKHJlYWRsaW5lKHByb21wdD0iRW50ZXIgZmlyc3QgbnVtYmVyYTogIikpDQpCID0gYXMubnVtZXJpYyhyZWFkbGluZShwcm9tcHQ9IkVudGVyIHNlY29uZCBudW1iZXI6ICIpKQ0KaWYoQSA+IEIpIHByaW50KEEpDQppZihCID4gQSkgcHJpbnQoQikNCmBgYA0KDQohW10oaW1hZ2VzLzAwMjEuZ2lmKQ0KDQpgYGB7cn0NCnggPSBhcy5pbnRlZ2VyKHJlYWRsaW5lKHByb21wdD0iRW50ZXIgYW4gaW50ZWdlciBudW1iZXI6ICIpKQ0KaWYoeD4wKSBwcmludCgiUG9zaXRpdmUiKSBlbHNlIHByaW50KCJOZWdhdGl2ZSIpDQpgYGANCg0KWW91IGNhbiBhbHNvIHJ1biBhIGNvbmRpdGlvbiBpbiBhbiBgaWZgIHN0YXRlbWVudCwgd2hpY2ggeW91IHdpbGwgbGVhcm4gbXVjaCBtb3JlIGFib3V0IGluIHRoZSBbaWYuLmVsc2VdKGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vci9yX2lmX2Vsc2UuYXNwKSBjaGFwdGVyLg0KDQpgYGB7cn0NCmEgPSAyMDANCmIgPSAzMw0KDQppZiAoYiA+IGEpIHsNCiAgcHJpbnQgKCJiIGlzIGdyZWF0ZXIgdGhhbiBhIikNCn0gZWxzZSB7DQogIHByaW50KCJiIGlzIG5vdCBncmVhdGVyIHRoYW4gYSIpDQp9IA0KYGBgDQoNCmBgYHtyfQ0KaWYgKGIgPiBhKSB7DQogIChiKjQpDQp9IGVsc2Ugew0KICAoYioyKQ0KfSANCmBgYA0KDQohW10oaW1hZ2VzLzAwMjIuZ2lmKQ0KDQpgYGB7cn0NCkEgPSBhcy5pbnRlZ2VyKHJlYWRsaW5lKHByb21wdD0iRW50ZXIgYW4gaW50ZWdlciBudW1iZXI6ICIpKQ0KQiA9IGFzLmludGVnZXIocmVhZGxpbmUocHJvbXB0PSJFbnRlciBhbiBpbnRlZ2VyIHRocmVzaG9sZDogIikpDQppZihBID4gQil7DQpwcmludChwYXN0ZShBLCAiaXMgZ3JlYXRlciB0aGFuIHRocmVzaG9sZCAiLCBCKSwgcXVvdGU9RikNCn0gZWxzZSBpZiAoQSA8IEIpew0KcHJpbnQocGFzdGUoQSwgImlzIGxlc3MgdGhhbiB0aHJlc2hvbGQgIiwgQiksIHF1b3RlPUYpDQp9IGVsc2Ugew0KcHJpbnQgKHBhc3RlKEEsICJpcyBlcXVhbCB0byB0aHJlc2hvbGQgIiwgQiksIHF1b3RlPUYpDQp9DQpgYGANCg0KYGBge3J9DQphIDwtIDIwMA0KYiA8LSAzMw0KDQppZiAoYiA+IGEpIHsNCiAgcHJpbnQoImIgaXMgZ3JlYXRlciB0aGFuIGEiKQ0KfSBlbHNlIGlmIChhID09IGIpIHsNCiAgcHJpbnQoImEgYW5kIGIgYXJlIGVxdWFsIikNCn0gZWxzZSB7DQogIHByaW50KCJhIGlzIGdyZWF0ZXIgdGhhbiBiIikNCn0gDQpgYGANCg0KIyMjIE5lc3RlZCBJZiBTdGF0ZW1lbnRzDQoNCmBgYHtyfQ0KeCA8LSA0NA0KDQppZiAoeCA+IDEwKSB7DQogIHByaW50KCJBYm92ZSB0ZW4iKQ0KICBpZiAoeCA+IDIwKSB7DQogICAgcHJpbnQoImFuZCBhbHNvIGFib3ZlIDIwISIpDQogIH0gZWxzZSB7DQogICAgcHJpbnQoImJ1dCBub3QgYWJvdmUgMjAuIikNCiAgfQ0KfSBlbHNlIHsNCiAgcHJpbnQoImJlbG93IDEwLiIpDQp9IA0KYGBgDQoNCiMjIEFORA0KDQpUaGUgJiBzeW1ib2wgKGFuZCkgaXMgYSBsb2dpY2FsIG9wZXJhdG9yLCBhbmQgaXMgdXNlZCB0byBjb21iaW5lIGNvbmRpdGlvbmFsIHN0YXRlbWVudHM6DQoNCmBgYHtyfQ0KYSA8LSAyMDANCmIgPC0gMzMNCmMgPC0gNTAwDQoNCmlmIChhID4gYiAmIGMgPiBhKXsNCiAgcHJpbnQoIkJvdGggY29uZGl0aW9ucyBhcmUgdHJ1ZSIpDQp9DQpgYGANCg0KIyMgT1INCg0KVGhlIGB8YCBzeW1ib2wgKG9yKSBpcyBhIGxvZ2ljYWwgb3BlcmF0b3IsIGFuZCBpcyB1c2VkIHRvIGNvbWJpbmUgY29uZGl0aW9uYWwgc3RhdGVtZW50czoNCg0KYGBge3J9DQphIDwtIDIwMA0KYiA8LSAzMw0KYyA8LSA1MDANCg0KaWYgKGEgPiBiIHwgYSA+IGMpew0KICBwcmludCgiQXQgbGVhc3Qgb25lIG9mIHRoZSBjb25kaXRpb25zIGlzIHRydWUiKQ0KfSANCmBgYA0KDQojIyBSIFdoaWxlIExvb3ANCg0KIyMgIVtdKGltYWdlcy8wMDIzLmdpZikNCg0KYGBge3J9DQppID0gMQ0Kd2hpbGUgKGkgPCA2KSB7DQpwcmludChpKQ0KaSA9IGkrMQ0KfQ0KYGBgDQoNCmBgYHtyfQ0KYT1jKDQ1LDY3LDg5LDkwLDU2LDQ0LDc4LDM0KQ0KaSA9IDENCmw9bGVuZ3RoKGEpDQpmPTANCndoaWxlIChpIDw9IGwpIHsNCiAgZj1hW2ldK2YNCiAgaSA9IGkrMQ0KICBtPWYvbA0KICBwcmludChtKQ0KfQ0KYGBgDQoNCmBgYHtyfQ0KIyBSIHByb2dyYW0gdG8gaWxsdXN0cmF0ZQ0KIyBhcHBsaWNhdGlvbiBvZiB3aGlsZSBsb29wDQogDQojIGFzc2lnbmluZyB2YWx1ZSB0byB0aGUgdmFyaWFibGUNCiMgd2hvc2UgZmFjdG9yaWFsIHdpbGwgYmUgY2FsY3VsYXRlZA0KbiA8IC0gNQ0KIA0KIyBhc3NpZ25pbmcgdGhlIGZhY3RvcmlhbCB2YXJpYWJsZQ0KIyBhbmQgaXRlcmF0aW9uIHZhcmlhYmxlIHRvIDENCmZhY3RvcmlhbCA8IC0gMQ0KaSA8IC0gMQ0KIA0KIyB1c2luZyB3aGlsZSBsb29wDQp3aGlsZSAoaSA8PSBuKQ0Kew0KIA0KICAgICMgbXVsdGlwbHlpbmcgdGhlIGZhY3RvcmlhbCB2YXJpYWJsZQ0KICAgICMgd2l0aCB0aGUgaXRlcmF0aW9uIHZhcmlhYmxlDQogICAgZmFjdG9yaWFsID0gZmFjdG9yaWFsICogaQ0KIA0KICAgICMgaW5jcmVtZW50aW5nIHRoZSBpdGVyYXRpb24gdmFyaWFibGUNCiAgICBpID0gaSArIDENCn0NCiANCiMgZGlzcGxheWluZyB0aGUgZmFjdG9yaWFsDQpwcmludChmYWN0b3JpYWwpDQpgYGANCg0KIVtdKGltYWdlcy9mYWN0b3JpbC5qcGcpDQoNCmBgYHtyfQ0KDQpuID0gNQ0KZmFjdG9yaWFsID0gMQ0KaSA9IDENCg0Kd2hpbGUgKGkgPD0gbil7DQogICAgZmFjdG9yaWFsID0gZmFjdG9yaWFsICogaQ0KICAgIGkgPSBpICsgMQ0KfQ0KDQpwcmludChmYWN0b3JpYWwpDQpgYGANCg0KIyMgUiBGb3IgTG9vcA0KDQojIyAhW10oaW1hZ2VzLzAwMjQuZ2lmKQ0KDQpgYGB7cn0NCmZvciAodmFsIGluIHNlcXVlbmNlKQ0Kew0Kc3RhdGVtZW50DQp9DQpgYGANCg0KYGBge3J9DQpmID0gYygyLDUsMyw5LDgsMTEsNiwxMSwxMiwyMCkNCmNvdW50ID0gMA0KZm9yICh2YWwgaW4gZikgew0KaWYodmFsICUlIDIgPT0gMCkgIA0KY291bnQgPSBjb3VudCsxDQp9DQpwcmludChjb3VudCkNCmBgYA0KDQpmYWN0b3JpYWwgYnkgZm9yDQoNCmBgYHtyfQ0KbnVtID02DQpmYWN0b3JpYWwgPSAxDQpmb3IoaSBpbiAxOm51bSkgew0KZmFjdG9yaWFsID0gZmFjdG9yaWFsICogaQ0KfQ0KcHJpbnQocGFzdGUoIlRoZSBmYWN0b3JpYWwgb2YiLCBudW0gLCJpcyIsZmFjdG9yaWFsKSkNCmBgYA0KDQpmYWN0b3JpYWwgYnkgZm9yDQoNCmBgYHtyfQ0KIyB0YWtlIGlucHV0IGZyb20gdGhlIHVzZXINCm51bSA9IGFzLmludGVnZXIocmVhZGxpbmUocHJvbXB0PSJFbnRlciBhIG51bWJlcjogIikpDQpmYWN0b3JpYWwgPSAxDQojIGNoZWNrIGlzIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHBvc2l0aXZlIG9yIHplcm8NCmlmKG51bSA8IDApIHsNCnByaW50KCJTb3JyeSwgZmFjdG9yaWFsIGRvZXMgbm90IGV4aXN0IGZvciBuZWdhdGl2ZSBudW1iZXJzIikNCn0gZWxzZSBpZihudW0gPT0gMCkgew0KcHJpbnQoIlRoZSBmYWN0b3JpYWwgb2YgMCBpcyAxIikNCn0gZWxzZSB7DQpmb3IoaSBpbiAxOm51bSkgew0KZmFjdG9yaWFsID0gZmFjdG9yaWFsICogaQ0KfQ0KcHJpbnQocGFzdGUoIlRoZSBmYWN0b3JpYWwgb2YiLCBudW0gLCJpcyIsZmFjdG9yaWFsKSkNCn0NCmBgYA0KDQojIyBicmVhayBzdGF0ZW1lbnQNCg0KIVtdKGltYWdlcy9yLWJyZWFrLWZsb3djaGFydC5qcGcpDQoNCmBgYHtyfQ0KeCA8LSAxOjUNCmZvciAodmFsIGluIHgpIHsNCmlmICh2YWwgPT0gMyl7DQpicmVhaw0KfQ0KcHJpbnQodmFsKQ0KfQ0KYGBgDQoNCiMjIEZ1bmN0aW9uDQoNCmBgYHtyfQ0KbXlfZnVuY3Rpb24gPC0gZnVuY3Rpb24oKSB7DQogIHByaW50KCJIZWxsbyBXb3JsZCEiKQ0KfQ0KbXlfZnVuY3Rpb24oKSAjIGNhbGwgdGhlIGZ1bmN0aW9uIG5hbWVkIG15X2Z1bmN0aW9uID0NCmBgYA0KDQpgYGB7cn0NCm1lYW5sb2c9ZnVuY3Rpb24oeCx5KXsNCiAgYj1sb2cobWVhbih4KSttZWFuKHkpKQ0KICBwcmludChiKQ0KfQ0KYT1jKDQ1LDY3LDg5LDkwKQ0KaD1jKDIsNCw1NSw2Nyw4OCkNCnQ9Yyg1NSw2Nyw5OSw4OSkNCm1lYW5sb2coYSx0KQ0KYGBgDQoNCmBgYHtyfQ0Kbm92aW4gPSBmdW5jdGlvbih4LHkpIHsNCiAgcGFzdGUoeCwiaGFzYW5pIix5LCAiYmFnaGVyaSIpDQp9DQoNCg0KDQpub3ZpbigiemFocmEiLCJob3NlZW4iKQ0KDQpgYGANCg0KYGBge3J9DQpibWkgPSBmdW5jdGlvbihnaGFkLHZhem4pIHsNCiAgeD12YXpuLyhnaGFkXjIpDQogIHByaW50KHBhc3RlKHgsInlvdXIgYm1pIikpDQp9DQoNCg0KDQoNCmJtaSgxLjYwLDY1KQ0KYGBgDQoNCmBgYHtyfQ0KbXlfZnVuY3Rpb24gPSBmdW5jdGlvbihmbmFtZSwgbG5hbWUpIHsNCiAgcGFzdGUoZm5hbWUsIGxuYW1lKQ0KfQ0KDQpteV9mdW5jdGlvbigiUGV0ZXIiLCAiR3JpZmZpbiIpIA0KYGBgDQoNCiMjIERlZmF1bHQgUGFyYW1ldGVyIFZhbHVlDQoNClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gdXNlIGEgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUuDQoNCklmIHdlIGNhbGwgdGhlIGZ1bmN0aW9uIHdpdGhvdXQgYW4gYXJndW1lbnQsIGl0IHVzZXMgdGhlIGRlZmF1bHQgdmFsdWU6DQoNCmBgYHtyfQ0KbXlfZnVuY3Rpb24gPC0gZnVuY3Rpb24oY291bnRyeSA9ICJOb3J3YXkiKSB7DQogIHBhc3RlKCJJIGFtIGZyb20iLCBjb3VudHJ5KQ0KfQ0KDQpteV9mdW5jdGlvbigiU3dlZGVuIikNCm15X2Z1bmN0aW9uKCJJbmRpYSIpDQpteV9mdW5jdGlvbigpICMgd2lsbCBnZXQgdGhlIGRlZmF1bHQgdmFsdWUsIHdoaWNoIGlzIE5vcndheQ0KbXlfZnVuY3Rpb24oIlVTQSIpIA0KYGBgDQoNCiMjIFJldHVybiBWYWx1ZXMNCg0KVG8gbGV0IGEgZnVuY3Rpb24gcmV0dXJuIGEgcmVzdWx0LCB1c2UgdGhlIGByZXR1cm4oKWAgZnVuY3Rpb246DQoNCmBgYHtyfQ0KbXlfZnVuY3Rpb24gPC0gZnVuY3Rpb24oeCkgew0KICByZXR1cm4gKDUgKiB4KQ0KfQ0KDQpwcmludChteV9mdW5jdGlvbigzKSkNCnByaW50KG15X2Z1bmN0aW9uKDUpKQ0KcHJpbnQobXlfZnVuY3Rpb24oOSkpDQpgYGANCg0KYGBge3J9DQp2PWMoNSw2LDgsOSwxNCkNCnJlc2NhbGUgPC0gZnVuY3Rpb24odikgeyAjIFJlc2NhbGVzIGEgdmVjdG9yLCB2LCB0byBsaWUgaW4gdGhlIHJhbmdlIDAgdG8gMS4NCkwgPC0gbWluKHYpDQpIIDwtIG1heCh2KQ0KcmVzdWx0IDwtICh2IC0gTCkgLyAoSCAtIEwpDQpyZXR1cm4ocmVzdWx0KQ0KfQ0KcmVzY2FsZSh2KQ0KYGBgDQoNCmBgYHtyfQ0Kc2FoYXI9ZnVuY3Rpb24obil7DQogIGZhY3RvcmlhbCA9IDENCiAgaSA9IDENCndoaWxlIChpIDw9IG4pDQp7DQogICAgZmFjdG9yaWFsID0gZmFjdG9yaWFsICogaQ0KICAgIGkgPSBpICsgMQ0KfQ0KcHJpbnQoZmFjdG9yaWFsKQ0KfQ0Kc2FoYXIoNSkNCmBgYA0KDQojIEVORCgxLTIpDQo=