forループ内のフィルターを変更するこんにちは、
For ループを使用して、JMP で分析を実行しようとしていますが、この分析では毎回一連の行がフィルター処理されます。私のコードは、以下のスニペットに似ています。問題は、フィルターが各反復で変更されず、フィルターが最初にのみ実装されることです。JMP ヘルプ PDF を読んで解決策を見つけようとしましたが、どれも役に立ちませんでした。
dt = Open(path to the file);
For( i = 1, i <= 10, i++,
df = dt << Data Filter(Invisible, Mode( Show( 1 ), Include( 1 ) ),
Add Filter( Columns( Tester ), Where( Tester = testerNames[i] ) ) );
Some analysis
print the report
);
品質およびプロセスエンジニアリングRe: for ループでフィルターを変更するフィルターを for ループの外に移動し、 << Where を使用してフィルター値を変更します。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
df = dt << Data Filter(
Mode(Show(1), Include(1)),
Add Filter(Columns(:Name))
);
names = Associative Array(:name) << get keys;
For(i = 1, i <= 10, i++,
df << (Filter Column(:name) << Where(:name == names[i]));
wait(1);
);Re: for ループでフィルターを変更する@jthiあなたの質問に答えましたが、そもそもそれが最善のアプローチなのだろうかと思います。 データフィルターを仲介として使用する代わりに、行状態関数を直接使用できるように、分析をスクリプト化しています。 このアプローチでは、基準を満たす行を選択して分析を実行します。
私はあなたのアプローチに反対しているわけではありませんが、データ フィルター オブジェクトは主にインタラクティブな分析を目的としています。 スクリプトを使用してデータをフィルター処理する方法はこれだけではありません。
Re: for ループでフィルタを変更するやあ@LoglinearRange8 、
それでも@jthiがあなたの質問に答えました。コードが期待どおりに機能しない理由の 1 つは、データ フィルター ウィンドウを閉じていないためだと思います。 For ループ内に df< @jthiフィルターを for ループの外側に移動し、for ループの内側のみを選択するソリューション。
から別のスレッドを調べることもできます@マークベイリーこここれは、スクリプト インデックスからこれをスクリプト化する方法を示しています。
私も同意します@マークベイリー、これはワークフローを自動化する最善の方法ではない可能性があります。 データ分析を実行するためのより良い方法があるかもしれません。
お役に立てれば!、
DS