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!
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 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!
Oder, wenn der Geschwindigkeitsgewinn nicht wichtig ist, einfach:
%Vor%Oder, wie @nullglob darauf hingewiesen hat,
%Vor%