Zeilen im Datenrahmen mit Faktor "" entfernen

7

Ich habe einen Datenrahmen wie x, in dem die Spaltengene ein Faktor sind. Ich möchte alle Zeilen entfernen, in denen Spaltengene nichts haben. In Tabelle X möchte ich Zeile 4 entfernen. Gibt es eine Möglichkeit, dies für einen großen Datenrahmen zu tun?

%Vor%

Letztendlich Ergebnis:

%Vor%

Danke euch allen!

    
Lisann 17.08.2011, 08:47
quelle

2 Antworten

22

Es ist nicht ganz offensichtlich aus Ihrer Frage, was die leeren Werte sind, aber Sie sollten in der Lage sein, die folgende Lösung zu übernehmen (hier nehme ich an, die 'leeren' Werte sind leere Zeichenfolgen):

%Vor%     
Nick Sabbe 17.08.2011, 08:55
quelle
10

@Nick Sabbe hat eine gute Antwort gegeben, aber es gibt eine Einschränkung:

Die Verwendung von -which(...) ist ein netter Trick, um (manchmal) die Teilmengenoperation zu beschleunigen, wenn nur wenige Elemente zu entfernen sind.

... Aber wenn keine Elemente entfernt werden sollen, schlägt es fehl!

Wenn also X$genes nicht leere Zeichenfolgen enthält, gibt which einen leeren Ganzzahlvektor zurück. Das zu negieren ist immer noch ein leerer Vektor. Und X [integer (0)] gibt ein leeres data.frame!

zurück %Vor%

Oder, wenn der Geschwindigkeitsgewinn nicht wichtig ist, einfach:

%Vor%

Oder, wie @nullglob darauf hingewiesen hat,

%Vor%     
Tommy 17.08.2011 16:12
quelle

Tags und Links