So entfernen sie spalten mit na-werten in r


Sie können eine von zwei Methoden verwenden, um Spalten aus einem Datenrahmen in R zu entfernen, die NA-Werte enthalten:

Methode 1: Verwenden Sie Base R

 df[, colSums(is. na (df))== 0 ]

Methode 2: dplyr verwenden

 library (dplyr)

df %>% select_if(~ !any(is. na (.)))

Beide Methoden führen zum gleichen Ergebnis.

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datenrahmen verwendet wird:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, NA, NA, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, NA))

#view data frame
df

  team points assists rebounds
1 A 99 33 30
2 B NA 28 28
3 C NA 31 24
4 D 88 39 24
5 E 95 34 NA

Beispiel 1: Entfernen Sie Spalten mit NA-Werten mithilfe der Basis R

Der folgende Code zeigt, wie man Spalten mit NA-Werten mithilfe grundlegender R-Funktionen löscht:

 #define new data frame
new_df <- df[ , colSums(is. na (df))== 0 ]

#view new data frame
new_df

  team assists
1 to 33
2 B 28
3 C 31
4 D 39
5 E 34

Beachten Sie, dass die beiden Spalten mit den NA-Werten (Punkte und Rebounds) beide aus dem Datenrahmen entfernt wurden.

Beispiel 2: Entfernen Sie Spalten mit NA-Werten mit dplyr

Der folgende Code zeigt, wie man Spalten mit NA-Werten mithilfe von Funktionen im dplyr- Paket entfernt:

 library (dplyr)

#define new data frame
new_df <- df %>% select_if(~ !any(is. na (.)))

#view new data frame
new_df

  team assists
1 to 33
2 B 28
3 C 31
4 D 39
5 E 34

Auch hier wurden die beiden Spalten mit den NA-Werten (Punkte und Rebounds) beide aus dem Datenrahmen entfernt.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So fügen Sie eine Spalte zu einem Datenrahmen in R hinzu
So benennen Sie Datenrahmenspalten in R um
So sortieren Sie einen Datenrahmen nach Spalte in R

Einen Kommentar hinzufügen

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