- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
マルチセグメントパーティション選択のためのJSLスクリプトのヘルプが必要
次のコードは、良いもので新しいテーブルを作成するのに役立ちますが、パーティションウィンドウを開いた状態で悪い母集団に対して選択できるのは1つだけです。 パーティション画面を開いてほしいのですが、ユーザーは悪い母集団に対して複数のリーフノードを選択でき、残りは良い母集団に移動します。 これを行う方法はありますか?
dt = Open("$SAMPLE_DATA\semiconductor capability.jmp");
filepath = "$Desktop";
nw = New window("part test",
V List Box(
obj = dt << Partition(
Y(:NPN1),
X(:PNP1, :PNP2, :PNP3, :PNP4, :NPN2, :NPN3, :NPN4),
Method("Decision Tree")
),
Button box("make splits",
make_splits_expr
);
)
);
obj << ShowGraph(0);
obj << SplitBest(4);
obj << Show Split Count(1);
obj << Show Split Prob(1);
make_splits_expr = Expr(
sel_rows = dt << Get Selected Rows;
If(N Items(sel_rows > 0),
dtTemp = dt << subset(invisible, rows(), selected columns(0));
Close(dtTemp, save(filepath || "\" || "badpopulation.jmp"));
dt << invert row selection;
sel_rows = dt << Get Selected Rows;
dtSEG = dt << subset(invisible, selected rows(1), selected columns(0));
Close(dtSEG, save(filepath || "\" || "goodpopulation.jmp"));
);
dt << Clear Selected;
);
黄色で強調表示されたノードを不良母集団として選択し、このパーティションウィンドウを開いたまま良好な母集団として残り、結果に満足できない場合はノード選択を変更できるようにしたいと思います。
それを実現する方法はありますか?
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re:マルチセグメントパーティション選択のためのJSLスクリプトのヘルプが必要
これがその刺し傷です:
lstSelectedRows = {};
dt = Open("$SAMPLE_DATA\semiconductor capability.jmp");
filepath = "$Desktop";
nw = New window("part test",
V List Box(
obj = dt << Partition(
Y(:NPN1),
X(:PNP1, :PNP2, :PNP3, :PNP4, :NPN2, :NPN3, :NPN4),
Method("Decision Tree")
),
HListBox(
TextBox("rows selected in node = "),
tb1 = TextBox("0"),
),
HListBox(
TextBox("total rows selected = "),
tb2 = TextBox("0")
),
ButtonBox("clear all selections",
clear_selections
, underlinestyle(1)
),
Button box("make splits",
make_splits_expr
);
)
);
// in the partition platform from any node you can select rows
// but we need to detect this event ... do it by detecting
// row state changes in the table
rs = dt << make row state handler(
function({a},
cdt = current data table();
sel = cdt << Get Selected Rows;
insertinto(lstSelectedRows,aslist(sel));
tmp = [=>];
insertInto( tmp, lstSelectedRows );
lstSelectedRows = tmp << getKeys; // <--- dedupe
tb1 << settext(char(nrows(sel)));
tb2 << settext(char(nitems(lstSelectedRows)));
)
);
obj << ShowGraph(0);
obj << SplitBest(4);
obj << Show Split Count(1);
obj << Show Split Prob(1);
clear_selections = Expr(
dt << Clear Selected;
tb1 << settext("0");
tb2 << settext("0");
lstSelectedRows = {};
);
make_splits_expr = Expr(
dt << select rows(lstSelectedRows);
sel_rows = dt << Get Selected Rows;
tb1 << settext(char(nrows(sel_rows)));
If(N Items(sel_rows > 0),
dtTemp = dt << subset(rows(), selected columns(0), output table("Selected"));
//Close(dtTemp, save(filepath || "\" || "badpopulation.jmp"));
dt << invert row selection;
sel_rows = dt << Get Selected Rows;
dtSEG = dt << subset(selected rows(1), selected columns(0), output table("Not Selected"));
//Close(dtSEG, save(filepath || "\" || "goodpopulation.jmp"));
);
dt << Clear Selected;
);
私はあなたが何をしようとしているのか理解していないかもしれないので、コードで何が起こっているのかを説明しようとはしません-しかしそれがあなたがやろうとしているのであれば、私はあなたに何が起こっているのかを説明させていただきます-私に知らせて。一部のコードは少し醜いですが、あなたが何をしようとしているのか理解できるかどうかを確認したかっただけです。私自身の便宜のために、2つのテーブルをデスクトップに保存する代わりに、「選択済み」と「未選択」というタイトルの2つの(表示可能なテーブル)を作成します。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。