Riclassificazione in base ai nuovi limiti delle specificheHo una tabella con un numero di parametri con limiti di specifica e una colonna di superamento fallito.
Utilizzo la gestione dei limiti delle specifiche per modificare alcuni limiti e ricaricarli nelle colonne della tabella.
OK finora.
Ma ora voglio riclassificare tutti i dispositivi (cioè rideterminare Pass e Fail) in base ai nuovi limiti delle specifiche.
Dato che ci sono moltissimi parametri, scrivere una formula per farlo sarebbe scomodo e richiederebbe molto tempo.
Potrei scrivere uno script per farlo (determinando le colonne con limiti specifici e creando una colonna formula basata su quello).
Ma c'è qualcosa di integrato in JMP per fare questo?
Ricerche sui consumatori e sul mercatoRi: Riclassificazione in base ai nuovi limiti delle specificheLa tua osservazione è corretta.Il codice che ho fornito presuppone che tutte le colonne abbiano limiti specifici.Il tuo suggerimento di creare un sottoinsieme contenente solo colonne completamente qualificate è un modo per gestirlo.E sarebbe un buon modo.
Un'altra alternativa sarebbe quella di aggiungere al codice fornito la possibilità di identificare le colonne che non hanno limiti di specifica e semplicemente ignorarle.
In ogni caso funzionerà.
Ri: Riclassificazione in base ai nuovi limiti delle specificheGrazie, Jim! È sicuramente molto più veloce.
Questo approccio con la matrice è in grado di gestire eccezioni come "Non considerare le colonne in cui USL=LSL" o "Colonne senza limiti di specifica"?
Devo prima creare una sottotabella con colonne valide (sottoinsieme personalizzato di colonne ed esclusione automatica di colonne in base a condizioni "non valide"), quindi applicare lo script proposto e aggiornare l'origine con la colonna dei risultati? --> È un modo efficiente per codificare?
Ri: Riclassificazione in base ai nuovi limiti delle specifichePenso che il seguente script sia un approccio migliore da adottare per trovare il test First Fail.Questo script crea una nuova colonna e la popola con il nome della prima colonna Fail

Names Default To Here( 1 );
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
USLVals = LSLVals = [];
For( i = 5, i <= N Cols( dt ), i++,
USLVals = USLVals || Matrix( (Column( dt, i ) << get property( spec limits ))["USL"] );
LSLVals = LSLVals || Matrix( (Column( dt, i ) << get property( spec limits ))["LSL"] );
);
dt << New Column( "First Fail", character );
For( i = 1, i <= N Rows( dt ), i++,
theMin = Min(
Min( Loc( (USLVals < dt[i, Index( 5, N Cols( dt ) - 1 )]) ) ),
Min( Loc( (dt[i, Index( 5, N Cols( dt ) - 1 )]) < LSLVals ) )
);
:First Fail[i] = Column( dt, theMin + 4 ) << get name;
);
Ri: Riclassificazione in base ai nuovi limiti delle specifiche theRows = dt << get rows where( Eval( specs["LSL"] ) >= As Column( dt, colNames[i] ) | As Column( dt, colNames[i] ) >= Eval( specs["USL"] ) );
Capito!
Ri: Riclassificazione in base ai nuovi limiti delle specifiche@txnelson
Ehi Jim,
Sto cercando di modificare lo script che hai fornito qui.
sto fallendo...
Mi piacerebbe avere un'unica colonna aggiuntiva che raccolga le categorie di errori. La categoria non riuscita dovrebbe mostrare la prima colonna non riuscita. Pertanto, eseguo il ciclo inverso con l'intenzione di sovrascrivere tutte le successive categorie di errore.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt << New Column( "First_Failed_Test", character, set each value( "Pass" ) );
colNames = dt << get column names( continuous, string );
For( i = N Items( colNames ), i >= 1, i--,
Clear Symbols( specs );
specs = Column( dt, colNames[i] ) << get property( "Spec Limits" );
If( Is Empty( specs ) == 0 | Eval( specs["LSL"] ) != Eval( specs["USL"]) ,
theRows = dt << get rows where( Eval( specs["LSL"] ) >= As Column( dt, colNames[i] ) >= Eval( specs["USL"] ) );
If( N Rows( theRows ),
Column( dt, "First_Failed_Test" )[theRows] = colNames[i]
);
);
);
Vedi cosa c'è che non va nella sceneggiatura?
Ri: Riclassificazione in base ai nuovi limiti delle specificheGrazie. Ha funzionato bene.
Ho anche creato un'espressione nel ciclo dello script da utilizzare come formula per calcolare il risultato complessivo pass-fail.Ri: Riclassificazione in base ai nuovi limiti delle specificheNon sono a conoscenza di uno strumento di binning di JMP basato sui limiti delle specifiche, ma ecco un pezzo di codice molto efficiente che esegue il binning.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNames = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colNames ), i++,
Clear Symbols( specs );
specs = Column( dt, colNames[i] ) << get property( "Spec Limits" );
If( Is Empty( specs ) == 0,
dt << New Column( colNames[i] || " Pass_Fail", character, set each value( "Fail" ) );
theRows = dt << get rows where( Eval( specs["LSL"] ) <= As Column( dt, colNames[i] ) <= Eval( specs["USL"] ) );
If( N Rows( theRows ),
Column( dt, colNames[i] || " Pass_Fail" )[theRows] = "Pass"
);
);
);