効率的な式ねえ、
ビッグデータテーブル(約3000万行* 20列)があり、このPass / FailテストでJMPが動かなくなります。
PCは、Windows 10 64ビット、i7-4770 @ 3.4Ghz、SSDおよび32GB DDR3 1600Mhzです。
JSLは次のとおりです。
cctable << New Column( "New status", Character, Nominal, Formula( If( :result < :L | :result > :H, "Fail", "Pass" ) ) );
より効率的になりますか?JMPにはそれを行うためのより良い選択がありますか?
おかげで、
私がやります
Re:効率的な式ありがとう!
私はします。
最も役に立ったのは、80M * 5ではなく、1M * 100のテーブルでした。
Re:効率的な式
テストでは、テーブルの作成に15秒、列を追加するのに15秒かかります。<< runFormulasを使用して、アイドル時間を待つのではなく、式がすぐに評価されるようにしています。
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>
「作成」;
停止-開始= 12.8833333333605;
N行(dt)= 30000000;
"追加";
停止-開始= 12.6833333332906;
N行(dt)= 30000000;
追加された式
Re:効率的な式よろしくお願いしますが、「新しいコラム(... ) "コマンドには時間がかかり、すべてがスタックします。
更新/参加を使用しようとします
あなた(または他の誰か:))のアイデアがある場合-私はそれを聞いてうれしいです。
ありがとう。
Re:効率的な式こんにちは、
そのようなテーブルでは列式を使用しないでください。
JSLを使用して計算を実行し、結果を貼り付けてみてください。
添付の表と使用したスクリプトを参照してください。
よろしく、
トム。