Speichern einer Liste innerhalb eines Datenrahmenelements in R

8

Ich möchte eine Datenstruktur in Form von

erstellen %Vor%

In Worten, ich bewege einen Ball entlang einer Linie. Der "Start" steht für die linke Position des Balls und das "Ende" steht für die rechte Seite. Die "Elemente" bedeuten, dass ich diese Positionen irgendwie besonders finde. Was ist die beste Datenstruktur, wenn die Anzahl der Elemente sehr groß werden kann? Das einzige, was mir einfällt, ist ein Datenrahmen, in dem die dritte Spalte eine entsprechend formatierte Zeichenfolge ist. Ich müsste dann die Saite parsen, wenn ich jede Zahl im Set sehen wollte. Gibt es ein besseres Datenformat, das R hat oder ist?

Danke!

    
user1357015 12.04.2013, 20:26
quelle

2 Antworten

12

Die in meinem Kommentar erwähnte Option, d. h. einfach eine Liste für eine der Spalten verwenden:

%Vor%

Sie könnten natürlich auch Datenframes komplett verwerfen und einfach eine einfache alte Liste verwenden (was in vielen Fällen sinnvoller ist):

%Vor%     
joran 12.04.2013, 21:27
quelle
6

Sie könnten es als einen großen Datenrahmen und nicht als einen breiten Datenrahmen speichern und wahrscheinlich den data.table verwenden, um ihn effizient zu verarbeiten. Das heißt, eine Zeile pro Element und nicht eine Zeile pro Anfangs- / Endpunkt-Paar erstellen

%Vor%

Dadurch können Sie mehrere Arten der Datenverarbeitung ganz einfach durchführen, z. B. indem Sie bestimmen, wie viele Elemente in jedem Bereich enthalten sind:

%Vor%

Dies würde die Daten auch für Diagramme vereinfachen, die das ggplot -Paket verwenden, das normalerweise Daten in einem hohen Format erwartet.

Sie können feststellen, dass diese Datenstruktur verschwenderisch ist, da sie für jedes Element den Anfang und das Ende wiederholt. Datentabellen werden jedoch sehr effizient gespeichert - selbst wenn Ihre Liste von Elementen buchstäblich Millionen lang ist, kann sie leicht auf diese Weise passen und verarbeitet werden. Probieren Sie eine Zeile wie folgt aus:

%Vor%

für eine Demonstration. Es wäre sicher , schneller zu handeln, als jede Elementliste als String zu speichern und jedes Mal zu teilen.

    
David Robinson 12.04.2013 20:36
quelle

Tags und Links