Scripting di un ciclo (forse un doppio ciclo)Ciao,
Ho bisogno di aiuto per costruire uno script per un cliente (vedi file allegato).
Vuole calcolare automaticamente la colonna "tempo relativo" in JMP (mentre qui viene calcolata off-line in Excel).
Per ogni "Numero di batch", quando "New Batch Trigger" = 1, la "Data / Ora" della riga corrispondente viene utilizzata come riferimento (è impostata a "0") e il "tempo relativo" viene calcolato come [Data / Time i - Rif. Data / ora].
Non sono ancora "fluente nella sceneggiatura", qualsiasi aiuto sarebbe apprezzato.
Grazie.
Emmanuel
Ri: Scripting di un ciclo (forse un doppio ciclo)Ciao Emmanuel,
Il modo più semplice per farlo è in modo interattivo, utilizzando le formule di colonna.
- Innanzitutto, modifica la formula della colonna che hai già per il nuovo flag batch, per consentire la prima riga. Vogliamo che anche qui il valore sia uguale a 1. Quindi, avremo 1 per la prima riga e qualsiasi riga che soddisfi i criteri di "nuovo batch". (Vedi l'immagine della formula immediatamente sotto.)
- aggiungere una trasformazione di colonna per la somma cumulativa della riga "nuovo batch". L'effetto di ciò è numerare ogni batch, consentendo il raggruppamento. (vedere la seconda schermata della formula e la schermata della tabella dei dati per vedere la numerazione)
- aggiungi una colonna formula per calcolare la differenza tra il tempo e il tempo minimo della colonna, raggruppati in base alla riga aggiunta nel passaggio uno sopra (vedi il terzo screenshot della formula e lo screenshot della tabella dei dati per vedere il ripristino a 0 del tempo relativo per ogni nuovo gruppo.)




Se il cliente insiste nel creare uno script, ecco uno script che corregge la formula nella colonna "nuovo trigger batch" e aggiunge le ultime 2 colonne nella tabella sopra.
Names Default To Here( 1 );
dt = Current Data Table();
dt:New Batch Trigger << formula( If( Row() == 1 | Dif( :Temperature C in °C, 1 ) + Dif( :Temperature B in °C, 1 ) < -60, 1, 0 ) );
dt << New Column( "Batch Group", formula( Col Cumulative Sum( :New Batch Trigger ) ) );
dt << New Column( "Rel time within group", formula( :"Date/Time"n - Col Minimum( :"Date/Time"n, :batch group ) ) );
Tabella allegata.
Saluti,
Brady
Ri: Scripting di un ciclo (forse doppio ciclo)Ciao Brady,
grazie. Sono ancora un po 'confuso in quanto non è correlato alla loro colonna "Tempo relativo". Penso che il problema derivi dal fatto che la loro riga di riferimento è nel "mezzo" del lotto e quindi c'è un "tempo relativo" negativo.
Emmanuel
Ri: Scripting di un ciclo (forse un doppio ciclo)Alla fine ho utilizzato una formula di colonna con funzione di pedice e riga (non ne ero a conoscenza al momento in cui ho pubblicato la richiesta).
