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 .