パーティションセグメントの複数選択パーティションモデルが表示されているときに複数のセグメントを選択したい。 選択したセグメントはbadpopulationjmpファイルに移動し、残りはgoodpopulationjmpファイルに移動します。 しかし、セグメントを複数選択するためにそれをコーディングする方法がわかりません。
私のコードは次のとおりで、2つのカテゴリに分けることができます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
obj = Partition(
Y( :NPN1 ),
X( :PNP1, :PNP2, :PNP3, :PNP4, :NPN2, :NPN3, :NPN4 ),
Method( "Decision Tree" ),
Validation Portion( .2 )
);
obj << ShowGraph( 0 );
obj << SplitBest( 4 );
obj << Show Split Count( 1 );
obj << Show Split Prob( 1 );
Wait( .5 );
obj << on close(
If( N Items( dt << get selected rows() ) > 0,
dtTemp = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
dt << invert row selection;
dtSEG = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
filepath = "$Desktop";
Close( dtTemp, save( filepath || "\" || "badpopulation.jmp" ) );
Close(dtSEG, save(filepath || "\" || "goodpopulation.jmp"));
)
);
複数のセグメントを追加したいのですが、強調表示されたセグメントを1つのjmpファイルにまとめます
(badpopulation)および他のjmpファイル(goodpopulation)へのRESTデータは、このコーディングに関して誰かが私を助けることができますか?
分析データ表スクリプティングウィンドウズRe:パーティションセグメントの複数選択[行の選択]LRTオプションを使用して、複数のリーフノードに関連付けられている行を選択できるようにしたいようです。 その場合は、行状態ハンドラーを使用できる可能性があり、以下のコードで開始できます。 これは、ユーザーがパーティションレポート以外で行を選択しないことを前提としていることに注意してください。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Matrix of all rows that were selected
::wasSelected = [];
// Row state handler function
updateWasSelected = Function({x}, {Default Local},
// 'x' is a column vector of row states that have CHANGED. We just need those that are now selected . . .
For( i = 1, i <= NRow(x), i++,
// Need to accumulate selected rows, not adding duplicates
If( Selected(RowState(x[i])) & !Contains(::wasSelected, x[i]),
::wasSelected = VConcat(::wasSelected, x[i])
);
);
);
// Assign the handler to the table
rsh = dt << MakeRowStateHandler(updateWasSelected);
// Do the partition and allow user to make selections vis leaf node LRT
obj = dt << Partition(
Y( :NPN1 ),
X( :PNP1, :PNP2, :PNP3, :PNP4, :NPN2, :NPN3, :NPN4 ),
Method( "Decision Tree" )
);
obj << ShowGraph( 0 );
obj << SplitBest( 4 );
obj << Show Split Count( 1 );
obj << Show Split Prob( 1 );
// Figure out what has been selected and make the auxilliary tables
obj << onClose(
If( NRows(::wasSelected) > 0,
filepath = "$Desktop";
Try(
dtTemp = dt << subset( invisible, rows( ::wasSelected ), selected columns( 0 ) );
Close( dtTemp, save( filepath || "\" || "badpopulation.jmp" ) ),
Print("No rows for table!");
);
dt << invert row selection;
Try(
dtSEG = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
Close( dtSEG, save( filepath || "\" || "goodpopulation.jmp" ) ),
Print("No rows for table!");
);
);
dt << clearRowStates;
);Re:パーティションセグメントの複数選択どうもありがとう。 これを試してみます。