Schneller Weg zum Auswählen von Zeilen innerhalb der Tabelle in R?

7

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.

    
Gordon Freeman 30.08.2012, 19:34
quelle

3 Antworten

4

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.

    
42- 30.08.2012, 19:41
quelle
10

Die data.table Lösung:

%Vor%     
Justin 30.08.2012 19:53
quelle
5

Wenn Sie sqldf verwenden, benötigen Sie rownames = TRUE . Dann können Sie mit row_names :

nach den Rownames fragen %Vor%

UPDATE: Alternativ, wenn fet ein Datenrahmen ist, dessen Spalte features die benötigten Elemente enthält:

%Vor%

Auch wenn die Daten ausreichend groß waren, konnten wir sie mithilfe von Indizes beschleunigen. Weitere Informationen hierzu finden Sie auf der sqldf-Startseite .

    
shhhhimhuntingrabbits 30.08.2012 19:53
quelle

Tags und Links