Ich suche nach einer schnellen Möglichkeit, eine große Anzahl von Zeilen aus einer noch größeren Tabelle zu extrahieren. Der Anfang meiner Tabelle ist wie folgt:
%Vor%Und die Dimensionen:
%Vor%Ich möchte die Zeilen auswählen, in denen die rownames in einer Liste enthalten sind:
%Vor% Es ist nicht überraschend, dass die einfache Art und Weise, dies temptable = dbsnp[features,]
auszuführen, ziemlich lange dauert.
Ich habe nach Möglichkeiten gesucht, dies durch das sqldf-Paket in R zu tun. Ich dachte, das könnte schneller sein. Leider kann ich nicht herausfinden, wie man Zeilen mit bestimmten Rownames in SQL auswählt.
Danke.
So wie die meisten Leute es zuerst versuchen würden:
%Vor%Da Sie sagen, dass dies lange dauert, haben Sie vermutlich Ihre RAM-Kapazität überschritten und haben begonnen, virtuellen Speicher zu verwenden. Sie sollten Ihr System herunterfahren und dann nur mit R als laufender Anwendung neu starten und sehen, ob Sie "virtuell" vermeiden können.
Wenn Sie sqldf
verwenden, benötigen Sie rownames = TRUE
. Dann können Sie mit row_names
:
UPDATE: Alternativ, wenn fet
ein Datenrahmen ist, dessen Spalte features
die benötigten Elemente enthält:
Auch wenn die Daten ausreichend groß waren, konnten wir sie mithilfe von Indizes beschleunigen. Weitere Informationen hierzu finden Sie auf der sqldf-Startseite .
Tags und Links sql r data.table row sqldf