Como escrever uma instrução if else aninhada em r (com exemplos)


A função ifelse() na base R pode ser usada para escrever instruções if-else rápidas. Esta função usa a seguinte sintaxe:

ifelse(teste, sim, não)

Ouro:

  • teste: um teste lógico
  • sim: o valor a ser retornado se o teste lógico for True
  • não: o valor a ser retornado se o teste lógico for falso

Este tutorial explica como usar esta função para escrever instruções if else, bem como instruções if else aninhadas em R, usando o seguinte quadro de dados:

 #create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'D'),
                 points = c(4, 7, 8, 8, 8, 9, 12),
                 rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

  team points rebounds
1 to 4 3
2 to 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 D 12 7

Exemplo 1: Como escrever uma instrução If Else básica

O código a seguir mostra como criar uma nova coluna no data frame cujo valor é baseado no valor da coluna “team”:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ', ' bad ')

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 bad
4 B 8 4 bad
5 B 8 6 bad
6 C 9 7 bad
7 D 12 7 bad

Esta simples instrução ifelse diz ao R para fazer o seguinte:

  • Se o valor na coluna da equipe for “A”, dê ao jogador uma classificação de “excelente”.
  • Caso contrário, sentirá falta do jogador “pobre”.

Exemplo 2: Como escrever uma instrução If Else aninhada

O código a seguir mostra como criar uma nova coluna no quadro de dados escrevendo uma instrução if else aninhada:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ', ' bad '))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 bad
7 D 12 7 bad

Esta instrução ifelse aninhada diz ao R para fazer o seguinte:

  • Se o valor na coluna da equipe for “A”, dê ao jogador uma classificação de “excelente”.
  • Caso contrário, se o valor na coluna da equipe for “B”, dê ao jogador uma classificação de “OK”.
  • Caso contrário, sentirá falta do jogador “pobre”.

Exemplo 3: Como escrever instruções If Else aninhadas mais longas

O código a seguir mostra como criar uma nova coluna no quadro de dados escrevendo uma instrução if else aninhada ainda mais longa:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ',
                 ifelse (df$team == ' C ', ' decent ', ' bad ')))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 decent
7 D 12 7 bad

Esta instrução ifelse aninhada diz ao R para fazer o seguinte:

  • Se o valor na coluna da equipe for “A”, dê ao jogador uma classificação de “excelente”.
  • Caso contrário, se o valor na coluna da equipe for “B”, dê ao jogador uma classificação de “OK”.
  • Caso contrário, se o valor na coluna do time for “C”, dê ao jogador uma classificação “Decente”.
  • Caso contrário, sentirá falta do jogador “pobre”.

Observe que você pode usar esse padrão exato para escrever instruções ifelse aninhadas pelo tempo que desejar.

Você pode encontrar mais tutoriais de R aqui .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *