So fügen sie na in die ifelse-anweisung in r ein
Häufig möchten Sie möglicherweise eine ifelse- Anweisung in R verwenden, um eine neue Spalte in einem Datenrahmen zu erstellen, deren Werte auf den Werten einer vorhandenen Spalte basieren.
Dazu können Sie die folgende grundlegende Syntax verwenden:
df$new_column<- ifelse(df$col1 == ' A ', ' val_if_true ', ' val_if_false ')
Wenn jedoch in einer Spalte NA-Werte vorhanden sind, sind die Werte in der neuen Spalte automatisch NA.
Um dies zu vermeiden, können Sie die Funktion !is.na() wie folgt verwenden:
df$new_column<- ifelse(df$col1 == ' A ' & !is. na (df$col1) , ' val_if_true ', ' val_if_false ')
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: NA in die ifelse-Anweisung in R einbinden
Angenommen, wir haben den folgenden Datenrahmen in R, der Informationen über verschiedene Basketballspieler enthält:
#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
Nehmen wir nun an, wir versuchen, eine neue Spalte namens „class“ zu erstellen, die die folgenden Werte annimmt:
- „West_Player“, wenn conf gleich „West“ ist
- „Andere“, wenn conf nicht gleich „West“ ist
Der folgende Code zeigt, wie das geht:
#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
Beachten Sie, dass der Klassenwert in Zeile 2 NA entspricht, da der entsprechende Wert in der Spalte „conf“ NA entspricht.
Um dies zu vermeiden, können wir die Funktion !is.na() wie folgt verwenden:
#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
Beachten Sie, dass der Klassenwert in Zeile 2 jetzt „Andere“ statt „NA“ lautet.
Mit der Funktion !is.na() haben wir angegeben, dass der Wert in der Spalte „conf “ gleich „West“ und nicht gleich „NA“ sein muss, damit der Wert in der neuen Klassenspalte „West_Player“ lautet.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So schreiben Sie eine verschachtelte If Else-Anweisung in R
Wie schreibe ich eine Fallerklärung in R?
So fügen Sie dem Datenrahmen in R mehrere Spalten hinzu