Come scrivere una dichiarazione di caso in r (con esempio)


Un’istruzione case è un tipo di istruzione che scorre ciclicamente le condizioni e restituisce un valore quando viene soddisfatta la prima condizione.

Il modo più semplice per implementare un’istruzione case in R è utilizzare la funzione case_when() dal pacchetto dplyr :

 library (dplyr)

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

Questa particolare funzione esamina il valore nella colonna chiamata col1 e restituisce:

  • value1 ” se il valore in col1 è inferiore a 9
  • value2 ” se il valore in col1 è inferiore a 12
  • value3 ” se il valore in col2 è inferiore a 15
  • value4 ” se nessuna delle condizioni precedenti è vera

Tieni presente che TRUE equivale a un’istruzione “else”.

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: dichiarazione del caso in R

Supponiamo di avere il seguente frame di dati in 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

Possiamo utilizzare la seguente sintassi per scrivere un’istruzione case che crea una nuova colonna chiamata class i cui valori sono determinati dai valori nella colonna points :

 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

L’istruzione case ha esaminato il valore nella colonna dei punti e ha restituito:

  • Cattivo ” se il valore nella colonna dei punti era inferiore a 9
  • OK ” se il valore nella colonna punti era inferiore a 12
  • Buono ” se il valore nella colonna dei punti era inferiore a 15
  • Ottimo ” se nessuna delle condizioni precedenti è vera

La nuova colonna si chiama class , poiché è il nome che abbiamo specificato nella funzione mutate() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come utilizzare l’istruzione If con più condizioni in R
Come scrivere un’istruzione If Else annidata in R
Come scrivere la tua prima funzione tryCatch() in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *