파티션 세그먼트의 다중 선택파티션 모델이 표시될 때 여러 세그먼트를 선택하고 싶습니다. 선택한 세그먼트는 badpopulation jmp 파일로 이동하고 나머지는 good 채우기 jmp 파일로 이동합니다. 그러나 세그먼트를 여러 개 선택하도록 코딩하는 방법을 모르겠습니다.
내 코드는 다음과 같이 두 가지 범주로 구분할 수 있습니다.
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"));
)
);
여러 세그먼트에 추가하고 강조 표시된 세그먼트를 가정하고 하나의 jmp 파일로 가져오고 싶습니다.
(badpopulation) 및 나머지 데이터를 다른 jmp 파일(goodpopulation)에 저장합니다. 누구든지 이 코딩과 관련하여 저를 도울 수 있습니까?
해석학데이터 테이블스크립팅창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: 파티션 세그먼트의 다중 선택정말 고맙습니다. 나는 이것을 시도할 것이다.