Zeilen mit NA in einer Spalte in R entfernen

Sheeraz Gul 21 Juni 2023
  1. Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode is.na() in R
  2. Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode complete.cases() in R
  3. Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode drop_na() der Tidyr-Bibliothek in R
Zeilen mit NA in einer Spalte in R entfernen

Spalten in einem Datenrahmen können leere Werte haben, die durch das Schlüsselwort NA dargestellt werden. Dieses Tutorial zeigt, wie Sie die Zeilen entfernen, die einen NA-Wert in einer Spalte in R enthalten.

Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode is.na() in R

Die Methode is.na() sucht nach den NA-Werten in einem Datenrahmen und entfernt die Zeilen der NA-Werte. Der Prozess ist unten angegeben:

  1. Erstellen Sie zunächst den Datenrahmen.
  2. Wählen Sie die Spalte basierend auf NA-Werten und Zeilen aus, die Sie löschen möchten.
  3. Erstellen Sie eine Negation mit der Methode is.na() unter Umgehung des Parameters dataframe$columnname.
  4. Die Methode entfernt die Zeilen, indem sie die angegebene Spalte überprüft, ob sie einen NA-Wert enthält.

Lassen Sie uns ein Beispiel versuchen, indem Sie die obigen Schritte ausführen.

Beispiel:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack[!is.na(Delftstack$Id),]

Der obige Code löscht die Zeilen basierend auf den NA-Werten in der Id-Spalte.

Ausgang:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode complete.cases() in R

Die Methode complete.cases() funktioniert ähnlich wie die Methode is.na(). Die Methode complete.cases sucht nach den NA-Werten in einem Datenrahmen und entfernt die Zeilen, die diesen Wert enthalten.

Der Prozess ähnelt den oben beschriebenen Schritten, der einzige Unterschied besteht darin, dass wir keine Negation mit complete.cases() verwenden.

Beispiel:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)


print('The dataframe after removing the rows:-')
Delftstack[complete.cases(Delftstack$Id),]

Der obige Code löscht die Zeilen basierend auf den NA-Werten in der Id-Spalte.

Ausgang:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Entfernen Sie Zeilen mit NA in einer Spalte mit der Methode drop_na() der Tidyr-Bibliothek in R

Das drop_na() aus der Tidyr-Bibliothek löscht die Zeilen basierend auf der Wertespalte NA. Zuerst müssen Sie die Tidyr-Bibliothek installieren, falls sie noch nicht installiert ist.

Führen Sie den folgenden Code aus, um das Paket zu installieren:

install.packages('tidyverse')

Obwohl die Codeausgabe den oben genannten Methoden ähnelt, ist der Prozess etwas anders. Wir verwenden die Syntax dataframe %>% drop_na(column), um die Zeilen zu löschen.

Beispiel:

library(tidyr)
Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack %>% drop_na(Id)

Der obige Code funktioniert ähnlich wie die obigen Methoden.

Ausgang:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Es gibt auch Methoden wie na.omit(), filter() usw., die verwendet werden, um Zeilen basierend auf den in einer beliebigen Spalte gefundenen NA-Werten zu entfernen. Sie entfernen die Werte basierend auf mehreren Spalten, nicht einer Spalte.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - R Data Frame