4 つの異なる温度に対する線形回帰モデルがあります。 それぞれにローカル データ フィルターを適用し、データのセグメントを指定できるようにしました。
このコードは、以下に示すように、ソース テーブル 2 列の各値を呼び出します。 これを自動化したいので、温度は増減する可能性があり、毎回コードを編集したくないのです。 おそらく、JSL スクリプトを使用する方法があると思いますが、私は自分で書くことを避け、代わりにワークフローを使用しようとしています。 ローカル フィルターも存在する限り、希望どおりに機能するデータ フィルターを追加しました。 ローカル フィルターを削除すると、データ フィルターも同様に機能しなくなります。
データ フィルターを変更してローカル フィルターを冗長にするにはどうすればよいですか?
不可能な場合、ローカル フィルターを自動になるようにコーディングするにはどうすればよいでしょうか?
データ テーブル( "並べ替え" ) << データ フィルター(
場所( {890, 387} )、
モード( Include( 1 ) )、
フィルターを追加(
列( :セグメント )、
Where( :セグメント == -100 )、
Display( :セグメント, N 項目( 8 ) )
)
);
データ テーブル( "並べ替え" ) << モデルの適合(
SendToByGroup(グループ別デフォルト)、
Y( :VCE )、
By( :ソース テーブル 2 )、
エフェクト(:ICE)、
パーソナリティ(「標準最小二乗法」)、
//Emphasis( "効果のレバレッジ" ),
走る(
:VCE << {フィットの概要( 0 )、分散分析( 0 )、
パラメータ推定値( 0 )、適合度の欠如( 0 )、スケーリングされた推定値( 0 )、
実際を予測( 0 )でプロット、残差を予測( 0 )でプロット、
スチューデント化残差のプロット( 0 )、効果のてこ入れのプロット( 0 )、
正規分位数による残差のプロット( 0 )、ボックス Cox Y 変換( 0 )}
)、
SendToByGroup(
{:ソーステーブル 2 == "25C"},
ローカル データ フィルター(
フィルターを追加( columns( :Segment )、Display( :Segment、N Items( 8 ) ) )
)
)、
SendToByGroup(
{:ソース テーブル 2 == "150C"},
ローカル データ フィルター(
フィルターを追加( columns( :Segment )、Display( :Segment、N Items( 8 ) ) )
)
)、
SendToByGroup(
{:ソース テーブル 2 == "125C"},
ローカル データ フィルター(
フィルターを追加( columns( :Segment )、Display( :Segment、N Items( 8 ) ) )
)
)、
SendToByGroup(
{:ソース テーブル 2 == "100C"},
ローカル データ フィルター(
フィルターを追加( columns( :Segment )、Display( :Segment、N Items( 8 ) ) )
)
)
ここで何をしようとしているのかよくわかりませんが? 除外された値を非表示にするために、データ フィルターから Show(1) を欠落しているだけではないでしょうか?

複数のフィルターで異なる where 句を使用していますか、それともそれぞれのフィルターで同じ範囲を選択していますか?各サブグループに同じ条件が必要な場合は、複数のフィルターではなく 1 つのフィルターのみを使用する方が簡単かもしれないため、質問しました。
混乱させて申し訳ありません!
はい、それぞれに同じ条件が必要です。 それらをすべて変更するフィルターを 1 つ用意したいと思います。
データフィルターを試してみましたが、ローカルフィルターがある場合は正しく使用できます。 ローカル フィルターを削除すると、データ フィルターは分析を変更せず、代わりにポイントを強調表示するだけです。
申し訳ありませんが、私の説明が明確ではありませんでした。 現在、show と include が選択されており、これによりうまく機能します。 ローカル フィルターが存在する限り、データ フィルターは分析を調整します。
私はローカルフィルターを必要としないことを望んでいます(しかし、これはあなたが助けるのが難しいと思います)。 または、ローカル フィルターがソース テーブルの値を特に呼び出さないようにしたいと考えています (これは毎回変更されるため)。
問題は、使用している JMP プラットフォームの自動 ReCalc オプションにあると思われます。
赤い三角形に移動して選択します
やり直し => 自動再計算
これにより、データ フィルターを変更すると、すべての表示を変更できるようになります。
グループごとに 1 つのフィルターを使用するには、次のようなものをお勧めします。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Window("report",
Data Filter Context Box(
HListBox(
dt << Data Filter(Local, Columns(:age)),
VListBox(
dt << Bivariate(X(:height),Y(:weight),By(:sex))
)
)
)
);
JMP18 では、スクリプトを使用するよりも、グループごとに単一のフィルターを対話的に共有する方が簡単になりますが、このスクリプトは複数のリリースで機能するはずであり、将来的にも同様に機能します。