グラフ ビルダー: JSL を使用した空のサブグラフの削除こんにちは、
JSL を使用してグラフ ビルダー プロットを作成しています。これらのプロットは、1 つまたは複数の変数に対してプロットされます。問題は、グラフ ビルダーが値のない空のプロットを生成する場合があることです。それらの空のサブグラフを削除する方法はありますか?問題をよりよく理解するために、例を添付しました。この例では、ALICE、DAVID、...などです。空の区画がある。これらは、JSL スクリプトを使用して削除しようとしているものです。
Empty() OR Is Missing() 関数を使用して、特定のセルが空であるかどうかを確認することを考えています。プロットはしません。
私の質問は、その特定のセルを選択してプロットから削除する方法はあるのかということです。
ありがとうございます !

自動化とスクリプト作成基本的なデータ分析とモデリングRe: グラフ ビルダー: JSL を使用して空のサブグラフを削除するテーブルレベルでは、空のセルを選択して非表示および除外に設定してみるとよいでしょう。
if(欠落()==1...
Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除するどの値が空になるかがわかっている場合は、グラフ ビルダー メッセージに Where ステートメントを追加して、それらの値をフィルターで除外できます。または、非表示のローカル データ フィルターを追加して、それらを非表示にすることもできます。
Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除する私ならローカルデータフィルターを使用してこれを行います。この特定の例を次のようにスクリプト化できます。
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
thenames = dt:name[(dt << Get Rows Where( Is Missing( :height ) ))];
Graph Builder(
Size( 857, 534 ),
Show Control Panel( 0 ),
Variables( Y( :height ), Group X( :name ) ),
Elements( Histogram( Y, Legend( 4 ) ) ),
Local Data Filter(
Inverse( 1 ),
Add Filter(
columns( :name ),
Where( :name == thenames ),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
)
);
グラフ ビルダーのメニューを使用して行うのも簡単です。

Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除する数値データ フィルターには、名前に変換せずにフィルターできる[欠落を選択]オプションがあります。これにより、グラフ ビルダーのフィルター where 節も表示されます。これは、グラフ ビルダーの起動に Where 節を直接追加するという@jthiの提案とよく似ています。フィルターの主な利点は、前後に切り替えることができることです。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Size( 857, 534 ),
Show Control Panel( 0 ),
Variables( Y( :height ), Group X( :name ) ),
Elements( Histogram( Y, Legend( 4 ) ) ),
Local Data Filter(
Inverse( 1 ),
Add Filter( columns( :height ), Select Missing( :height ) )
)
);
Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除するInverse(1)とSelect Missingの問題:
Inverse(1)は、特定の項目だけでなく、データフィルターの選択全体に作用します。
つまり、このアプローチを追加のフィルターと組み合わせることはできません。
例: 選択できません:
- (高さの値が欠落している)の逆数
- 性別 = "M"
おそらく、Jmp の将来のリリース (> 18) では、データ フィルターの個々の部分を「反転」しないオプションが追加されるでしょう。
データ フィルター、新しいオプション: 「not」
Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除するその機能はすでに存在します。
ローカル データ フィルターで「AND」を使用する代わりに、「OR」を使用します。
この場合、身長データが欠落しており、身長の欠落を示すインジケータを含む列があります。
フィルターでは、次の操作を実行できます: Where((sex = F) or (height missing Indicator = 1))

Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除するこんにちは@Byron_JMP申し訳ありませんが、解決策は次の条件に当てはまらないようです:
次の条件を満たすすべてのデータ ポイントを表示します。
1) 欠損値のないデータ -> (欠損値のある高さの値)の逆数
そして
2) 性別 = 「M」
おそらくその周囲に「逆」があるのでしょう...
この特殊なケースに適したデータ フィルターを生成することもできます。集合演算ロジックの博士号を持つすべてのユーザーにとって、これは魅力的なものとなるでしょう。
多用途でスムーズかつ簡単なユーザー インターフェイスを実現するために、私は「not」オプションを備えた Jmp バージョンを心待ちにしています。このオプションでは、次のことが可能になります。

Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除する反転した選択はいつでも反転できます。ただし、ここではあなたの要求に同意します。

Re: グラフ ビルダー: JSL を使用して空のサブグラフを削除するソリューションを機能させるための鍵は、次の数式を含む列を追加することです: is missing(:列名)
これにより、数式列に 0 または 1 が返されます。0 = 欠落していない。
インジケーター列はあなたの味方です。