Mehrfachauswahl von PartitionssegmentenIch möchte mehrere Segmente auswählen, wenn das Partitionsmodell angezeigt wird. Die ausgewählten Segmente werden in die JMP-Datei „Badpopulation“ eingefügt, der Rest in die JMP-Datei „Good Population“. Aber ich weiß nicht, wie ich es für die Mehrfachauswahl der Segmente codieren soll.
Mein Code sieht wie folgt aus und ermöglicht die Unterteilung in zwei Kategorien:
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"));
)
);
Ich möchte mehrere Segmente hinzufügen, die hervorgehobenen annehmen und sie in einer JMP-Datei zusammenfassen
(badpopulation) und Restdaten in eine andere JMP-Datei (goodpopulation) kopieren. Kann mir jemand bei dieser Codierung helfen? 
Erweiterte statistische ModellierungPrädiktive Modellierung und maschinelles LernenQualitäts- und VerfahrenstechnikWindowsBetreff: Mehrfachauswahl von PartitionssegmentenVielleicht eine noch bessere oder einfachere Lösung:
Nachdem Sie Ihren Baum gebaut haben. Verwenden Sie das RTM, um die Blattnummern zu speichern

.
Verwenden Sie dann Fit YbyX, um eine ANOVA mit Blattnummer als X und Ihrer Antwort als Y durchzuführen, und wählen Sie die "schlechten" Blätter aus dem Baum aus.

Betreff: Mehrfachauswahl von PartitionssegmentenOhne die Verwendung von Skripten gibt es eine nette Lösung mit den Point-and-Click-Funktionen in JMP
Wählen Sie zuerst die Zeilen in dem Blatt mit „schlechten“ Werten aus, indem Sie das Red Triangle Menu (RTM) im Blatt verwenden.

Als Nächstes Benennen Sie die Auswahl in Spalte auf der Menüregisterkarte Zeilen

Geben Sie einen Titel für Ihre neue Spalte und ein Label für Ihre "schlechten" Zeilen ein.
Geben Sie keinen Wert für die nicht ausgewählten Zeilen ein. Lassen Sie es einfach leer

Wiederholen Sie diesen Schritt für jedes "schlechte" Blatt
Betreff: Mehrfachauswahl von PartitionssegmentenVielen Dank. Ich werde dieses ausprobieren.Betreff: Mehrfachauswahl von PartitionssegmentenEs sieht so aus, als ob Sie die Auswahl der Zeilen zulassen möchten, die mehreren Blattknoten über die LRT-Option „Select Rows“ zugeordnet sind. Wenn dies der Fall ist, können Sie möglicherweise einen Zeilenzustandshandler verwenden, und der folgende Code sollte Ihnen den Einstieg erleichtern. Beachten Sie, dass davon ausgegangen wird, dass der Benutzer keine anderen Zeilenauswahlen als über den Partitionsbericht vornimmt.
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;
);