Plotten riesige Dateien in R?

7

Ich habe eine Eingabedatei mit ungefähr 20 Millionen Zeilen. Die Größe der Datei beträgt etwa 1,2 G. Gibt es trotzdem, kann ich die Daten in R darstellen. Einige der Spalten haben Kategorien, die meisten davon sind Zahlen.

Ich habe versucht, mein Skript mit einer kleinen Teilmenge der Eingabedatei über 800K Zeilen auszugeben, aber obwohl ich etwa 8G RAM habe, scheint es mir nicht möglich zu sein, alle Daten zu plotten. Gibt es einen einfachen Weg, dies zu tun?

    
Sam 29.05.2012, 20:39
quelle

5 Antworten

12

Ohne eine klarere Beschreibung der Art der Handlung, die Sie wollen, ist es schwer, konkrete Vorschläge zu geben. Im Allgemeinen ist es jedoch nicht erforderlich, 20 Millionen Punkte in einem Diagramm zu zeichnen. Zum Beispiel könnte eine Zeitreihe durch eine Splines-Anpassung oder irgendeine Art von Mittelwert, z. stündliche Daten zu täglichen Durchschnitten zusammenfassen. Alternativ zeichnen Sie eine Teilmenge der Daten, z. nur ein Punkt pro Tag im Beispiel der Zeitreihen. Ich glaube also, Ihre Herausforderung besteht nicht darin, 20 Millionen Punkte oder sogar 800.000 Punkte auf einer Handlung zu erzielen, sondern darauf, wie Sie Ihre Daten effektiv so zusammenfassen, dass sie die Botschaft vermitteln, die Sie erzählen wollen.

    
Paul Hiemstra 30.05.2012, 07:50
quelle
4

Das Paket hexbin zum Zeichnen von Hexbins anstelle von Streudiagrammen für Variablenpaare, wie von Ben Bolker in Beschleunigte plot () -Funktion für große Dataset arbeitete für mich für 2 Millionen Datensätze ziemlich mit 4GB RAM. Aber es ist für 200 Millionen Datensätze / Zeilen für denselben Satz von Variablen gescheitert. Ich habe versucht, die Bin-Größe zu reduzieren, um die Rechenzeit gegenüber der RAM-Nutzung anzupassen, aber es hat nicht geholfen.

Für 20 Millionen Datensätze können Sie Hexbins mit xbins = 20,30,40 testen.

    
Earnest_learner 06.05.2014 05:24
quelle
3

Das direkte Plotten in ein Rasterdateigerät (z. B. png() aufrufen) ist viel schneller. Ich habe versucht, rnorm(100000) zu plotten und auf meinem Laptop brauchte X11 cairo plot 2.723 Sekunden, während png in 2.001 Sekunden fertig war. mit 1 Million Punkten sind die Zahlen 27.095 und 19.954 Sekunden.

Ich benutze Fedora Linux und hier ist der Code.

%Vor%     
h2kyeong 30.05.2012 05:40
quelle
1

Die Speichererweiterung mit memory.limit () hat mir geholfen ... Dies ist zum Plotten mit ggplot fast 36K Records.

    
Vidya 05.12.2017 12:17
quelle
0

erweitert den verfügbaren Speicher mit memory.limit(size=2000) (oder etwas größer) Hilfe?

    
Matthew Plourde 29.05.2012 20:45
quelle

Tags und Links