Een geneste if else-verklaring in r schrijven (met voorbeelden)


De ifelse() -functie in basis R kan worden gebruikt om snelle if-else-instructies te schrijven. Deze functie gebruikt de volgende syntaxis:

ifelse(test, ja, nee)

Goud:

  • test: een logische test
  • ja: de waarde die moet worden geretourneerd als de logische test True is
  • nee: de waarde die moet worden geretourneerd als de logische test False is

In deze zelfstudie wordt uitgelegd hoe u deze functie kunt gebruiken om zowel if else-instructies als geneste if else-instructies in R te schrijven, met behulp van het volgende dataframe:

 #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

Voorbeeld 1: Hoe u een fundamentele If Else-verklaring schrijft

De volgende code laat zien hoe u een nieuwe kolom in het gegevensframe maakt waarvan de waarde is gebaseerd op de waarde van de kolom ‚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

Deze eenvoudige ifelse-instructie vertelt R om het volgende te doen:

  • Als de waarde in de teamkolom „A“ is, geef de speler dan de beoordeling „uitstekend“.
  • Anders mis je de speler „arm“.

Voorbeeld 2: Hoe u een geneste If Else-instructie schrijft

De volgende code laat zien hoe u een nieuwe kolom in het gegevensframe maakt door een geneste if else-instructie te schrijven:

 #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

Deze geneste ifelse-instructie vertelt R om het volgende te doen:

  • Als de waarde in de teamkolom „A“ is, geef de speler dan de beoordeling „uitstekend“.
  • Anders, als de waarde in de teamkolom „B“ is, geef de speler dan de beoordeling „OK“.
  • Anders mis je de speler „arm“.

Voorbeeld 3: Langere geneste If Else-verklaringen schrijven

De volgende code laat zien hoe u een nieuwe kolom in het gegevensframe kunt maken door een nog langere geneste if else-instructie te schrijven:

 #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

Deze geneste ifelse-instructie vertelt R om het volgende te doen:

  • Als de waarde in de teamkolom „A“ is, geef de speler dan de beoordeling „uitstekend“.
  • Anders, als de waarde in de teamkolom „B“ is, geef de speler dan de beoordeling „OK“.
  • Anders, als de waarde in de teamkolom ‚C‘ is, geef de speler dan de beoordeling ‚Redelijk‘.
  • Anders mis je de speler „arm“.

Houd er rekening mee dat u dit exacte patroon kunt gebruiken om geneste ifelse-instructies zo lang te schrijven als u wilt.

Meer R-tutorials vindt u hier .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert