So entfernen Sie Zeilen mit inf aus einem Datenrahmen in R

9

Ich habe einen sehr großen Datenrahmen ( df ) mit ungefähr 35-45 Spalten (Variablen) und Zeilen größer als 300. Einige der Zeilen enthalten NA, NaN, Inf, -Inf Werte in einzelnen oder mehrere Variablen und ich habe benutzt na.omit(df) , um Zeilen mit NA und NaN zu entfernen, aber ich kann Zeilen mit Inf- und -Inf-Werten nicht mit der Funktion na.omit entfernen.

Bei der Suche stieß ich auf diesen Thread Entfernen Sie Zeilen mit Inf und NaN in R und verwendete den modifizierten Code df[is.finite(df)] , aber es löschte nicht die Zeilen mit Inf und -Inf und gibt auch diesen Fehler

  

Fehler in is.finite (df): Standardmethode für Typ nicht implementiert   'Liste'

BEARBEITET

Entfernen Sie die gesamte Zeile, auch wenn die entsprechende eine oder mehrere Spalten inf und -inf haben

    
Eka 13.04.2016, 06:24
quelle

3 Antworten

9

Um die Zeilen mit + / - Inf zu entfernen, würde ich Folgendes vorschlagen:

%Vor%

oder äquivalent

%Vor%

Die zweite Option (die mit is.finite() und ohne Negation) entfernt auch Zeilen, die NA enthalten, falls dies noch nicht geschehen ist.

    
RHertel 13.04.2016, 06:31
quelle
5

is.finite funktioniert bei vector und nicht bei data.frame -Objekt. Also können wir die data.frame mit lapply durchlaufen und nur die "endlichen" Werte erhalten.

%Vor%

Wenn die Anzahl der Inf , -Inf -Werte für jede Spalte unterschiedlich ist, hat der obige Code list mit Elementen ungleich length . Es kann also besser sein, es als list zu belassen. Wenn wir ein data.frame haben wollen, sollte es gleich lang sein.

Wenn wir Zeilen entfernen möchten, enthalten sie alle NA- oder Inf / -Inf-Werte

%Vor%

Oder eine kompakte Option von @nicola

%Vor%

Wenn wir bereit sind, ein Paket zu verwenden, wäre eine kompakte Option NaRV.omit

%Vor%

Daten

%Vor%     
akrun 13.04.2016 06:25
quelle
3

Um die Zeilen ohne Inf zu behalten, können wir tun:

%Vor%

Auch NA s werden dadurch behandelt wegen:
Ein Zeilenindex mit dem Wert NA entfernt diese Zeile im Ergebnis.

Auch Zeilen mit NaN sind nicht im Ergebnis.

%Vor%

Hier sind die Ergebnisse der verschiedenen is.~ -Funktionen:

%Vor%     
jogo 13.04.2016 06:32
quelle

Tags und Links