Basics:
x <- 5
if (x == 5){
print("x = 5")
}
#response: "x = 5"
if (x == 6){
print("x = 5")
}
#no response
If Else
if (x == 5){
print("x = 5")
}else{
print("x doesn't equal 5")
}
#response "x = 5"
if (x == 6){
print("x = 6")
}else{
print("x doesn't equal 6")
}
#response: "x doesn't equal 6"
To make a IF NOT statement add the ! function in the mix
x <- 5
if (!(x == 5)){
print("x does not = 5")
}
#no response
if (!(x == 6)){
print("x does not = 6")
}
#response: "x does not = 6"
For numbers you can do the same thing with the not equal sign
x <- 5
if (x != 6){
print("x does not = 6")
}
#return "x does not = 6"
Make a chain of if statements with if, else if statements. (like python’s elif)
x <- 5
if (x < 5){
print("x is less than 5")
}else if(x > 5){
print("x is more than 5")
}else if(x == 5){
print ("x is equal to 5")
}else {
print ("x is not a number")
}
#return: "x is equal to 5"
Also look at elseif()
ifelse
returns a value with the same shape as test
which is filled with elements selected from either yes
or no
depending on whether the element of test
is TRUE
or FALSE
.
x <- 5
print(ifelse(x==5, 'x is equal to 5', NA))
# "x is equal to 5"
print(ifelse(x==6, 'x is equal to 5', 'x is not equal to 5'))
# "x is not equal to 5"
ifelse(x == 5, print('x is equal to 5'), print('x is not equal to 5'))
# "x is equal to 5"
# "x is equal to 5"
y <- 5
ifelse(y == 5, print('y is equal to 5'), print('y is not equal to 5'))
# "y is not equal to 5"
# "y is not equal to 5"
NOTE: ifelse() strips attributes
https://rdrr.io/r/base/ifelse.html
For Tidyverse look at if_else()