If

Linguagem R

A construção de controle if decide o que vai ser executado baseado em uma condição. Se a condição for verdadeira, o corpo do então é executado. Senão o corpo do senão é executado. O corpo do senão pode ser outra cláusula if. Sua forma geral é:

# Se … então
if (condição) {
  corpo-do-então
}
# Se … então … senão
if (condição) {
  corpo-do-então
} else {
  corpo-do-senão
}
# Se … então … senão se … senão
if (condição) {
  corpo-do-então
} else if (condição) {
  corpo-do-senão-se
} else if (condição) {
  corpo-do-senão-se
} else {
  corpo-do-senão
}
Exemplo
> cmyk <- function( cor ) {
+     if (cor == "C") {
+         "Ciano"
+     } else if (cor == "M") {
+         "Magenta"
+     } else if (cor == "Y") {
+         "Amarelo"
+     } else if (cor == "K") {
+         "Preto"
+     } else {
+         NA
+     }
+ }
> cmyk("K")
[1] "Preto"
> cmyk("Y")
[1] "Amarelo"
> cmyk("M")
[1] "Magenta"
> cmyk("C")
[1] "Ciano"
> cmyk("X")
[1] NA
Função ifelse(condição, então, senão)
> ifelse(0:9 %% 2 == 0, "par", "ímpar")
 [1] "par"   "ímpar" "par"   "ímpar" "par"   "ímpar" "par"   "ímpar" "par"  
[10] "ímpar"
Função switch(expressão, lista)

O resultado da expressão pode ser tanto um número quanto uma cadeia de caracteres. Se o resultado da expressão for uma cadeia de caracteres, este resultado será comparado com os nomes das alternativas na lista, sendo que o valor padrão, para o caso de não haver correspondência com o nome alguma das alternativas, não tem nome. Se o resultado da expressão for um número, será retornada a expressão da lista correspondente ao número.

> cmyk <- function( cor ) {
+     switch (cor,
+         C = "Ciano",
+         M = "Magenta",
+         Y = "Amarelo",
+         K = "Preto",
+         NA)
+ }
> cmyk("K")
[1] "Preto"
> cmyk("Y")
[1] "Amarelo"
> cmyk("M")
[1] "Magenta"
> cmyk("C")
[1] "Ciano"
> cmyk("X")
[1] NA
> cmyk(2)
[1] "Magenta"
> cmyk(5)
[1] NA