Trovare colonne e righe consecutiveCiao,
In allegato è riportata la tabella dei dati di 2 PARTI, vale a dire PARTE-02 e PARTE-03. Ogni parte ha le proprie colonne e righe (ColX, RowY). Desidero utilizzare JSL per identificare la PARTE che ha colonne o righe consecutive che appaiono più di 4. Qui PART-02 è quella che ha righe che appaiono più di 4 volte consecutivamente. Voglio che il mio output sia solo una tabella con ID PARTE e il risultato come di seguito.


Automazione e scriptingRe: Trovare colonne e righe consecutiveEcco il JSL che ho creato che crea la nuova tabella e la popola come specificato
Names Default To Here( 1 );
dt = Current Data Table();
dtResults = dt <<
summary(
group( :LotLabel, :WaferLabel ),
output table( "Results" ),
Link to Original Data Table( 0 )
);
dtResults << delete columns( :N Rows );
dtResults << New Column( "Results",
character,
set each value( "FAIL" )
);
For Each Row(
dt,
If( Row() >= 4,
If(
Col Moving Average(
:ColX,
weighting = 1,
before = -3,
after = 0,
:LotLabel,
:WaferLabel
) == :ColX |
Col Moving Average(
:RowY,
weighting = 1,
before = -3,
after = 0,
:LotLabel,
:WaferLabel
) == :RowY,
dtResults:Results[dtResults << get rows where(
dtResults:LotLabel == dt:LotLabel &
dtResults:WaferLabel == dt:WaferLabel
)] = "PASS"
)
)
);

Re: Trovare colonne e righe consecutiveCiao Jim, nel set di dati precedente, per PART-01, 02 dovrebbe essere superato. Ci scusiamo per la disinformazione. In allegato è presente un set di dati più ampio che include la PARTE-01,02,03,17. La Parte-01,02,03 dovrebbe essere Superata e solo la PARTE-17 dovrebbe fallire. Dovrebbe essere come di seguito, ma il tuo script indica che anche PART02,03 non funziona.

Re: Trovare colonne e righe consecutiveSì, devi cambiare 4 in 7 e -3 in -6.
Il fattore di ponderazione offre la possibilità di impostare il peso di ciascuno dei valori medi. Il valore 1 indica di utilizzare la stessa ponderazione su ciascun valore.
Prima = imposta il numero di righe prima della riga corrente da utilizzare nel calcolo della media mobile.
Dopo = imposta il numero di righe successive alla riga corrente da utilizzare nel calcolo della media mobile.
Infine, utilizza l'icona JSL nella parte superiore dell'anteprima quando inserisci JSL nella discussione. Aiuta davvero i lettori a leggere e interpretare il codice.
Ho modificato la tua ultima risposta e spostato il JSL elencato in una casella di visualizzazione JSL
Re: Trovare colonne e righe consecutiveCiao Jim, nel set di dati precedente, per PART-01, 02 dovrebbe essere superato. Ci scusiamo per la disinformazione. In allegato è presente un set di dati più ampio che include la PARTE-01,02,03,17. La Parte-01,02,03 dovrebbe essere Superata e solo la PARTE-17 dovrebbe fallire. Dovrebbe essere come di seguito, ma il tuo script indica che anche PART02,03 non funziona.

Re: Trovare colonne e righe consecutive- L'uso della media mobile delle colonne come controllo non ha funzionato, quindi l'ho modificato utilizzando una deviazione standard sulle 7 righe.
- Il metodo che stavo utilizzando per trovare la riga nella tabella dati dtResults non funzionava. Ho dovuto passare a un ciclo For() per poter ottenere l'esattezza richiesta.
- Avevo la logica al contrario... Passando se trovavo i valori in una riga, piuttosto che Fallendo quando ciò accadeva.
Names Default To Here( 1 );
dt = Current Data Table();
dtResults = dt << summary(
group( :LotLabel, :WaferLabel ),
output table( "Results" ),
Link to Original Data Table( 0 )
);
dtResults << delete columns( :N Rows );
dtResults << New Column( "Results",
character,
set each value( "PASS" )
);
For( i = 1, i <= N Rows( dt ), i++,
If( i >= 7,
If(
Std Dev( dt:ColX[i - 6 :: i] ) == 0 |
Std Dev( dt:RowY[i - 6 :: i] ) == 0,
dtResults:Results[dtResults <<
get rows where(
dtResults:LotLabel == dt:LotLabel[i] & dtResults
:WaferLabel == dt:WaferLabel[i]
)] = "FAIL"
)
)
);
Devi studiare il codice, non limitarti a tagliarlo e incollarlo nel tuo script. È necessario essere sufficientemente istruiti per essere in grado di eseguire il debug di problemi futuri e generare le correzioni.
Re: Trovare colonne e righe consecutiveGrazie, Jim. Dopo alcuni aggiustamenti, per me ha funzionato.