Hoe na op te nemen in ifelse-instructie in r


Vaak wil je misschien een ifelse- instructie in R gebruiken om een nieuwe kolom in een dataframe te maken waarvan de waarden zijn gebaseerd op de waarden van een bestaande kolom.

Om dit te doen, kunt u de volgende basissyntaxis gebruiken:

 df$new_column<- ifelse(df$col1 == ' A ', ' val_if_true ', ' val_if_false ')

Als er echter NA-waarden in een kolom voorkomen, zijn de waarden in de nieuwe kolom automatisch NA.

Om dit te voorkomen, kunt u de functie !is.na() als volgt gebruiken:

 df$new_column<- ifelse(df$col1 == ' A ' & !is. na (df$col1) , ' val_if_true ', ' val_if_false ')

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: neem NA op in ifelse-instructie in R

Stel dat we het volgende dataframe in R hebben dat informatie bevat over verschillende basketbalspelers:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F'),
                 conf=c('West', NA, 'West', 'East', 'East', 'East'),
                 points=c(30, 35, 11, 18, 14, NA))

#view data frame
df

  player conf points
1 A West 30
2 B <NA> 35
3 C West 11
4 D East 18
5 E East 14
6 F East NA

Stel nu dat we proberen een nieuwe kolom te maken met de naam class , die de volgende waarden aanneemt:

  • ‚West_Player‘ als conf gelijk is aan ‚West‘
  • ‚Anders‘ als conf niet gelijk is aan ‚West‘

De volgende code laat zien hoe u dit doet:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ', ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 <NA>
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

Merk op dat de klassewaarde in rij 2 gelijk is aan NA, aangezien de overeenkomstige waarde in de conf- kolom gelijk is aan NA.

Om dit te voorkomen, kunnen we de functie !is.na() als volgt gebruiken:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ' & !is. na (df$conf), ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 Other
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

Merk op dat de Klasse- waarde in regel 2 nu gelijk is aan „Overig“ in plaats van NA.

Met behulp van de functie !is.na() hebben we gespecificeerd dat de waarde in de conf- kolom gelijk moet zijn aan ‚West‘ en niet gelijk aan NA, zodat de waarde in de nieuwe klassenkolom ‚West_Player‘ is.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe schrijf je een geneste If Else-instructie in R
Hoe schrijf je een casusverklaring in R
Hoe meerdere kolommen aan een dataframe toe te voegen in R

Einen Kommentar hinzufügen

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