データフィルター: 制限を指定する方法データ フィルターでは、ユーザーは制限として入力できる値が制限されます。
入力された制限値が使用可能なデータ ポイントの範囲外である場合、値は自動的に最小値または最大値に置き換えられます。
ユーザーは JSL コードを変更できますが、グラフが開くと、値は最小値と最大値に再び設定されます。
a) 任意の数字を入力するための隠されたトリックはありますか?シフトエンターが機能しませんでした
b) ユーザー定義のフィルター仕様をそのままにしてダッシュボードを生成する方法はありますか?

データの探索と視覚化Re: データフィルター: 制限を指定する方法@ホギテクニカル サポートの私のチームの誰かが、あなたの電子メールのご厚意により、質問 a) についての評価を提供するはずです。 support@jmp.com (2023 年 6 月 16 日付け) 質問 a) に関連しますが、質問についてはb) 「ユーザー定義のフィルター仕様をそのままにしてダッシュボードを生成する方法はありますか?」
仕様を定義した後も、その仕様は保持されるようです。表示されている内容を説明する例を含めて、さらに詳しい情報を提供していただけますか?
Re: データフィルター: 制限を指定する方法現在のデータ範囲を超えるフィルターを使用してダッシュボードを生成するために、以下の方法で低いスペック = 1 の GraphBuilder プロットを生成しました。
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter( columns( :height ), Where( :height >= 1 ) )
)
)
結果は期待できるものではありませんでした:

それからダッシュボードに追加しました

そしてコードをチェックしました - そして確かに - Jmp は私の仕様を調整しました:

制限を 1 に戻し、コードを使用して新しいダッシュボードを生成し、コードを再度確認したところ、再び 51 でした。
Re: データフィルター: 制限を指定する方法次に、高さ =1 の偽の行を追加しました。これにより、低スペック =1 のデータ フィルターを定義できるようになりました。

しかし、行を削除するとすぐに、データフィルターは再び51に変更されました...
現在のデータ範囲外の仕様を持つデータ フィルターは、非常に壊れやすいオブジェクトであると思われます。
これまで、ダッシュボードを生成し、テーブル スクリプトとして保存し、数週間の間に新しいデータをロードし、ダッシュボードを最適化し、テーブル スクリプトとして再度保存しました...
データ フィルターが現在のデータ範囲に合わせて動的に調整される場合は危険です。
Re: データフィルター: 制限を指定する方法@ホギ- JMP 17 で、最小値/最大値のいずれかを変更しない場合:

これらはスクリプトには表示されません。
Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter( Add Filter( columns( :height ), Where( :height <= 65 ) ) )
);
これは、データが変化しており、一方的な制限が必要な場合に役立ちます。ただし、両方の値を変更してから極端な点にドラッグして戻すと、両方の値がスクリプトに表示されます。これを行った後、フィルター項目を「クリア」すると、Where() 句は生成されなくなります。残念ながら、Where() 句の存在は、フィルター条件が設定されているかどうかを示す指標であり、それが、表示するシナリオに両方の値が表示される理由です。
Re: データフィルター: 制限を指定する方法@ホギ- コンテキストをありがとう - データ クリーニングは分析の外部で実行されることがよくありますが、これらの条件をフィルターに組み込む方法の 1 つは、削除する条件を含む変換列を定義することです。これにより、任意の Where() 句をブール条件として使用できるようになります。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Transform Column(
"Invalid Data",
Nominal,
Formula( :age > 18 | Starts With( :name, "Teacher" ) )
),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :age, :Invalid Data ),
Where( :Invalid Data == 0 ),
Display( :age, N Items( 6 ) )
)
)
);
これは、すべての無効なデータを含むテーブルがないことを前提としています。もう 1 つのアプローチは、LDF をグローバル データ フィルターと組み合わせて使用して、すべてのレポートから無効なデータを削除することです。グローバル行状態は、各プラットフォームで使用されるフィルター条件と結合されます。
Re: データフィルター: 制限を指定する方法ありがとう@ダンシコレなんとエレガントな回避策でしょう:)
失敗する唯一のケースは、データセットが存在しない場合です。有効データ、つまりデータなし
Where( :Invalid Data == 0 )
しかし、とにかく、ダッシュボードを保存しようとする人は誰もいないでしょう:)
Re: データフィルター: 制限を指定する方法ありがとう@ダンシコレ拡張のために。
質問を投稿したときは、フィルターの片側を開けることについては考えていませんでした。
アイデアは次のとおりです。
データ フィルターで不良データ ポイント (<0) またはその他の明確に定義されたデータ (欠落データ、インジケーター エントリ) を自動的に削除する場合、そのようなデータは現在のデータ セットに存在する必要があります。そうでない場合は、データ フィルターが自動的に適応します。
この場合、「reference」という名前と欠落している名前を持つ行をすべて削除したいと思います。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Data Table( "Big Class" ):name << Set Modeling Type( "Multiple Response" );
Graph Builder(
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :name ),
Match None( Where( :name == "reference","" ) ),
Display( :name, Find( Set Text( "" ) ) )
)
)
);
ただし、現在のデータ セットにそのような行がない場合、データ フィルターは単に無視され、ユーザーが現在のバージョンのグラフまたはダッシュボードを保存するときにこの部分が失われます。コードを実行して、結果のスクリプトを保存するだけです。
次回ユーザーがグラフを開くと、名前と「参照」データが欠落している行がデフォルトで表示されるため、ユーザーはそれらを手動で除外する必要があります。
この問題は、オプションが追加されるとすぐにさらに深刻になるでしょう。いいえより多くのモデリング タイプで使用できるようになります。
データフィルター、新しいオプション: "not"
Re: データ フィルター: 制限を指定する方法:folded_hands: 列プロパティ: 包括的な値(別名、強制値) により、この問題は修正されます。