Como escrever uma declaração de caso em r (com exemplo)


Uma instrução case é um tipo de instrução que percorre as condições e retorna um valor quando a primeira condição é atendida.

A maneira mais fácil de implementar uma instrução case em R é usar a função case_when() do pacote dplyr :

 library (dplyr)

df %>% 
  mutate(new_column = case_when(
    col1 < 9 ~ ' value1 ',
    col1 < 12 ~ ' value2 ',
    col1 < 15 ~ ' value3 ',
    TRUE ~ ' Great '))

Esta função específica analisa o valor na coluna chamada col1 e retorna:

  • valor1 ” se o valor em col1 for menor que 9
  • valor2 ” se o valor em col1 for menor que 12
  • valor3 ” se o valor em col2 for menor que 15
  • valor4 ” se nenhuma das condições anteriores for verdadeira

Observe que TRUE é equivalente a uma instrução “else”.

O exemplo a seguir mostra como usar esta função na prática.

Exemplo: declaração de caso em R

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (player=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 points=c(6, 8, 9, 9, 12, 14, 15, 17, 19, 22))

#view data frame
df

   player points
1 1 6
2 2 8
3 3 9
4 4 9
5 5 12
6 6 14
7 7 15
8 8 17
9 9 19
10 10 22

Podemos usar a seguinte sintaxe para escrever uma instrução case que cria uma nova coluna chamada classe cujos valores são determinados pelos valores na coluna de pontos :

 library (dplyr)

#create new column using case statement
df %>% 
  mutate(class = case_when(
    points < 9 ~ ' Bad ',
    points < 12 ~ ' OK ',
    points < 15 ~ ' Good ',
    TRUE ~ ' Great '))

   player points class
1 1 6 Bad
2 2 8 Bad
3 3 9 OK
4 4 9 OK
5 5 12 Good
6 6 14 Good
7 7 15 Great
8 8 17 Great
9 9 19 Great
10 10 22 Great

A instrução case analisou o valor na coluna de pontos e retornou:

  • Ruim ” se o valor na coluna de pontos for menor que 9
  • OK ” se o valor na coluna de pontos for menor que 12
  • Bom ” se o valor na coluna de pontos for inferior a 15
  • Ótimo ” se nenhuma das condições anteriores for verdadeira

A nova coluna é chamada class , pois esse é o nome que especificamos na função mutate() .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como usar a instrução If com múltiplas condições em R
Como escrever uma instrução If Else aninhada em R
Como escrever sua primeira função tryCatch() em R

Add a Comment

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