Re: Where() を使用して分析をフィルターダウンすると、新しいリンクされたプライベート データ テーブルが作成されますプラットフォームには Where() と By() の共通の処理があり、どちらも機能を実装するためのサブセット テーブルを作成します。実装に関してこれほど詳細なレベルのドキュメントがあるかどうかはわかりません。
サブセットは、フィルターによる行状態の操作と比較して有益な区別を提供します。この例は、モデルをサブセットに適合させるときに、JMP がそのモデルをサブセットに含まれない行に適用しないことを示しています。フィルターで同じことを行うと、モデルはすべての行に適用されます。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
このタイプのサブセットを使用するかどうかは、実行している分析の詳細によって異なります。
-ダン
Where() を使用して分析をフィルターダウンすると、新しいリンクされたプライベート データ テーブルが作成されますほとんどの場合、JMP (JSL) が予期せぬ動作をするとき、私は通常、JMP (JSL) が動作することだけを気にするので気にしません。しかし、今日は「興味深い」ことを思いつきました。 Where() を使用して分析をフィルタリングすると、データ テーブルにリンクされたプライベート データ テーブルが作成されます (かなり奇妙な名前、この場合は「Big Class, where -sex == -F-」)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
したがって、この動作に関していくつか質問があります。
- これは、(グラフ ビルダーに限らず) 分析をフィルタリングするためにこのように Where() を使用する場合に常に発生しますか?
- これはどこかに文書化されていますか?
- JMPには、このようなインタラクションが他にもありますか。そこで、隠されたものを作成し、このようなものに遭遇する可能性があります(私にとって、データテーブルの参照を取得するために<< Get Data Tableを使用しましたが、間違ったものを使用したため、これにより関数の1つで問題が発生しました。簡単な修正は、テーブル参照をパラメータとして関数に追加することでした)
- このようなフィルタリングも行う必要がありますか?
編集:
これに少なくとも部分的に関連するヘルプ ページをいくつか追加します。
自動化とスクリプト作成