Come scrivere un'istruzione nested if else in r (con esempi)


La funzione ifelse() in base R può essere utilizzata per scrivere istruzioni if-else rapide. Questa funzione utilizza la seguente sintassi:

ifelse(prova, sì, no)

Oro:

  • test: un test logico
  • sì: il valore da restituire se il test logico è Vero
  • no: il valore da restituire se il test logico è False

Questo tutorial spiega come utilizzare questa funzione per scrivere istruzioni if else e istruzioni if else nidificate in R, utilizzando il seguente frame di dati:

 #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

Esempio 1: come scrivere un’istruzione di base If Else

Il codice seguente mostra come creare una nuova colonna nel data frame il cui valore è basato sul valore della colonna “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

Questa semplice istruzione ifelse dice a R di fare quanto segue:

  • Se il valore nella colonna della squadra è “A”, assegna al giocatore una valutazione “eccellente”.
  • Altrimenti mancherà il giocatore “povero”.

Esempio 2: come scrivere un’istruzione If Else annidata

Il codice seguente mostra come creare una nuova colonna nel frame di dati scrivendo un’istruzione if else nidificata:

 #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

Questa istruzione ifelse nidificata dice a R di fare quanto segue:

  • Se il valore nella colonna della squadra è “A”, assegna al giocatore una valutazione “eccellente”.
  • Altrimenti, se il valore nella colonna della squadra è “B”, assegna al giocatore una valutazione di “OK”.
  • Altrimenti mancherà il giocatore “povero”.

Esempio 3: come scrivere istruzioni If Else nidificate più lunghe

Il codice seguente mostra come creare una nuova colonna nel frame di dati scrivendo un’istruzione if else nidificata ancora più lunga:

 #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

Questa istruzione ifelse nidificata dice a R di fare quanto segue:

  • Se il valore nella colonna della squadra è “A”, assegna al giocatore una valutazione “eccellente”.
  • Altrimenti, se il valore nella colonna della squadra è “B”, assegna al giocatore una valutazione di “OK”.
  • Altrimenti, se il valore nella colonna della squadra è “C”, assegna al giocatore una valutazione “Decente”.
  • Altrimenti mancherà il giocatore “povero”.

Tieni presente che puoi utilizzare questo modello esatto per scrivere istruzioni ifelse nidificate per tutto il tempo che desideri.

Puoi trovare altri tutorial su R qui .

Aggiungi un commento

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