Effiziente FormelHallo,
Ich habe eine Big-Data-Tabelle (~ 30 Millionen Zeilen * 20 Spalten) und dieser Pass / Fail-Test lässt JMP hängen.
Der PC ist Windows 10 64-Bit, i7-4770 bei 3,4 GHz, SSD und 32 GB DDR3 1600 MHz.
Die JSL lautet:
cctable << New Column( "New status", Character, Nominal, Formula( If( :result < :L | :result > :H, "Fail", "Pass" ) ) );
Kann es effizienter sein? Gibt es eine bessere Wahl in JMP, um dies zu tun?
Vielen Dank,
Ich mache
Betreff: Effiziente FormelVielen Dank!
Ich werde es machen.
Obwohl das am meisten half, war eine Tabelle mit 1M * 100 statt 80M * 5
Betreff: Effiziente Formel
Mein Test dauert 15 Sekunden, um die Tabelle zu erstellen, und 15 Sekunden, um die zusätzliche Spalte hinzuzufügen. Ich verwende << runFormulas, um die Formel sofort auszuwerten, anstatt auf die Leerlaufzeit zu warten.
start = Tick Seconds();
dt = New Table( "Untitled",
Add Rows( 30e6 ),
New Column( "L", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "result", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "H", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) )
);
dt<<RUNFORMULAS> :H, "Fail", "Pass" ) ) );
dt << runformulas;
stop = Tick Seconds();
Show( "add", stop - start, N Rows( dt ) );</RUNFORMULAS>
"erstellen";
stop - start = 12.8833333333605;
N Zeilen (dt) = 30000000;
"hinzufügen";
stop - start = 12.6833333332906;
N Zeilen (dt) = 30000000;
Formel hinzugefügt
Betreff: Effiziente FormelDanke, aber die "Neue Spalte (... ) "Befehl braucht Zeit und alles bleibt auch stecken.
Ich werde versuchen, Update / Join zu verwenden
Wenn Sie (oder jemand anderes
) eine andere Idee haben - ich werde es gerne hören.
Vielen Dank.
Betreff: Effiziente FormelHallo,
Verwenden Sie für eine solche Tabelle keine Spaltenformeln.
Versuchen Sie, eine Berechnung mit JSL auszuführen und die Ergebnisse einzufügen.
Im Anhang finden Sie eine Tabelle und ein Skript, die ich verwendet habe.
Grüße,
Tom.