キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Get the free JMP Student Edition for qualified students and instructors at degree granting institutions.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

forループ内のフィルターを変更する

LoglinearRange8
Level I

こんにちは、

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
);

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

1 件の受理された解決策

受理された解決策
jthi
Super User

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);
);
3件の返信3
jthi
Super User

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);
);

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Re: for ループでフィルターを変更する

@jthiあなたの質問に答えましたが、そもそもそれが最善のアプローチなのだろうかと思います。 データフィルターを仲介として使用する代わりに、行状態関数を直接使用できるように、分析をスクリプト化しています。 このアプローチでは、基準を満たす行を選択して分析を実行します。

 

私はあなたのアプローチに反対しているわけではありませんが、データ フィルター オブジェクトは主にインタラクティブな分析を目的としています。 スクリプトを使用してデータをフィルター処理する方法はこれだけではありません。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

SDF1
Super User

Re: for ループでフィルタを変更する

やあ@LoglinearRange8

 

それでも@jthiがあなたの質問に答えました。コードが期待どおりに機能しない理由の 1 つは、データ フィルター ウィンドウを閉じていないためだと思います。 For ループ内に df< @jthiフィルターを for ループの外側に移動し、for ループの内側のみを選択するソリューション。

 

から別のスレッドを調べることもできます@マークベイリーこここれは、スクリプト インデックスからこれをスクリプト化する方法を示しています。

 

私も同意します@マークベイリー、これはワークフローを自動化する最善の方法ではない可能性があります。 データ分析を実行するためのより良い方法があるかもしれません。

 

お役に立てれば!、

DS

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。