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

Einen Kommentar hinzufügen

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