557067_ja-JP
ローカル データ フィルターの変更に対応する要約統計グラフ参照線を追加する
データの平均値の基準線を含むラン チャートを作成します。 ローカル データ フィルターを追加し、カテゴリが選択されると平均値が変化するようにします。 行を除外することを平均してください。
材料:サンプル データ テーブル:ビッグクラス
困難:難しい
手順:- でスクリプトを開始します名前のデフォルトは Here(1) です。
- 開くビッグクラスサンプルデータテーブルと参照を与えるdt .
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
- いくつかの行をランダムに除外します。
dt << select randomly(sampling rate(0.2)) << exclude << clear select;
- Graph Builder を使用してグラフを作成し、参照を与えるGB .
gb = Graph Builder(
Size( 621, 472 ),
Variables( Y( :height ) ),
Elements( Line( Y, Legend( 3 ), Row order( 1 ) ) ),
);
- ローカル データ フィルターを追加し、参照を与えるdf .
df = gb << local data filter(add filter(columns(:sex)));
- のフィルター変更ハンドラーの作成 (f)データ フィルター オブジェクトへのメッセージは、ユーザー関数の引数を評価します。へデータフィルターが変更されるたびに。 参照線が存在する場合はそれを削除する関数を作成し、ローカル データ フィルターによって選択され、除外されていない行の応答の平均を見つけて、それらの応答の平均で Y 軸に参照線を追加します。行。 次に、メッセージをデータ フィルターに送信します。
//user function to be called when filter is changed
f = function({a}, //a is not used
//remove the y axis reference line, if it exists
try(report(gb)[axisbox(2)] << remove ref line(meanHeight));
//get the where clause from the data filter
//it will look like Select Where(...)
txt = df << get where clause;
//get the argument, if it exists
arg = if(length(txt), arg(parse(txt), 1), txt);
//get row numbers of filtered rows
aaDf = if(length(txt),
associative array(dt << get rows where(arg)),
index(1, nrow(dt))
);
//find row numbers of non-excluded rows
vecEx = dt << select excluded
<< invert row selection
<< get selected rows
<< clear select;
aaEx = associative array(vecEx);
//get row numbers of both
aaEx << intersect(aaDf);
lstAll = aaEx << get keys;
//find the mean of filtered/non-excluded response
//if nothing is filtered, find the mean of non-excluded only
meanHeight = if(length(txt),
mean(column(dt, "height")[lstAll]),
mean(column(dt, "height")[aaEx << get keys])
);
//add reference line
report(gb)[axisbox(2)] << add ref line(meanHeight, "Solid", 19, 2);
);
rs = df << make filter change handler(f);
成功へのヒント
- グラフ ビルダーおよびデータ フィルター オブジェクトをインタラクティブに作成し、[スクリプトの保存] > [スクリプト ウィンドウ] を使用してスクリプトをコピーするか、拡張ログを使用します。
- Scripting Index を使用して、Data Filter などのオブジェクトが応答できるメッセージを理解してください。 例を実行して、それらがどのように機能するかを確認してください。 たとえば、ユーザー関数 f の引数 a には何が返されますか?
- 小さく始めましょう。 この例は、除外された行を考慮せずに作成されました。 除外された行を含むテーブルでスクリプトが試行されたのは、スクリプトが作成された後でした。 除外された行を含むテーブルの特殊なケースが後に追加されました。 フィルターで何も選択されていないという他の特殊なケースも後で追加されました。
自動化とスクリプトメインディッシュ
Comments
There are no comments yet