English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Condicional no R

A estrutura de decisão requer que o programador especifique uma ou mais condições a serem avaliadas ou testadas, bem como as instruções a serem executadas quando a condição for verdadeira (obrigatórias) e quando for falsa (opcional).

Abaixo está a forma geral de estrutura de decisão típica em muitos linguagens de programação:

O R oferece os seguintes tipos de instruções de decisão:

  • instrução if

  • instrução if...else

  • Declaração switch

instrução if

um comando if é composto por uma expressão booleana seguida por uma ou mais instruções.

O formato de sintaxe é o seguinte:

if(boolean_expression) {
    // instrução a ser executada se verdadeira
}

se a expressão booleana boolean_expression for true, executar o código dentro deste bloco. Se for false, não executar.

x <- 50L
if(is.integer(x)) {
   print("X é um inteiro")
}

Execute o código acima e o resultado será:

[1] "X é um inteiro"

instrução if...else

um comando if pode ser seguido por uma instrução else opcional, que é executada quando a expressão booleana for falsa.

O formato de sintaxe é o seguinte:

if(boolean_expression) {
    // instrução a ser executada se verdadeira
} else {
    // instrução a ser executada se falsa
}

se a expressão booleana boolean_expression for true, executar o código dentro do bloco if. Se for false, executar o código dentro do bloco else.

x <- c("google","w3codebox,"taobao")
if("w3codebox " %in% x) {
   print("contém w3codebox)
} else {
   print("não contém w3codebox)
}

Execute o código acima e o resultado será:

[1] "contém w3codebox"

se houver múltiplas condições de decisão, pode-se usar if...else if...else:

else if (boolean_expression 1) {
    // se a expressão booleana boolean_expression 1 instrução a ser executada se verdadeira
} 2) {
    // se a expressão booleana boolean_expression 2 instrução a ser executada se verdadeira
} 3) {
    // se a expressão booleana boolean_expression 3 instrução a ser executada se verdadeira
} else {
    // executar quando todas as expressões booleanas forem false
}
x <- c("google","w3codebox,"taobao")
print("primeiro if contém weibo")
   else if ("w
}3codebox " %in% x) {
   print("segundo if contém w3codebox)
} else {
   print("Nenhum encontrado")
}

Execute o código acima e o resultado será:

[1] "O segundo if contém w3codebox"

Declaração switch

Uma declaração switch permite testar várias condições quando uma variável é igual a vários valores. Cada valor é chamado de um caso.

O formato de sintaxe é o seguinte:

switch(expressão, case1, case2, case3....)

switch A declaração deve seguir as regras a seguir:

  • switch Na declaração expressão É uma expressão constante, pode ser um inteiro ou uma string, se for um inteiro, retorna o valor da posição correspondente ao case, se o inteiro não estiver no intervalo da posição, retorna NULL.

  • Se coincidir com várias valores, retorna o primeiro.

  • expressãoSe for uma string, correspondente ao nome da variável no case, não há correspondência, não há valor de retorno.

  • switch não tem parâmetro padrão disponível.

O seguinte exemplo retorna o terceiro valor:

x <- switch(
   3,
   codebox",
   "w3codebox",
   "taobao",
   "weibo"
)
print(x)

Execute o código acima e o resultado será:

[1] "taobao"

Se for uma string, retorna o valor correspondente à variável de string:

you.like<-"w3codebox"
switch(you.like, google="www.google.com", w3codebox = "pt.oldtoolbag.com", taobao = "www.taobao.com")

Execute o código acima e o resultado será:

[1] "pt.oldtoolbag.com"

Se o inteiro não estiver no intervalo, retorna NULL

> x <- switch(4,"google","w3codebox,"taobao")
> x
NULL
> x <- switch(4,"google","w3codebox,"taobao")
> x
NULL