Differenza di ritardo regolabile?Non so come intitolarlo, ma ecco qui. Ho set di dati con diversi punti temporali per batch. Per ogni lotto voglio calcolare la differenza nei risultati dal punto temporale zero. Di solito confrontavo ciascun risultato con la colonna min o max (a seconda dei casi) che funzionava bene, ma quando i risultati sono un po' instabili, il massimo o il minimo potrebbero verificarsi in un punto temporale diverso da zero.
Voglio il differenziale (desiderato) come di seguito. C'è un modo semplice per farlo in una formula?

jmp 17.1
Organizzazione dei contenutiPersonalizzazione di massaIngegneria della qualità e dei processiCondivisione e comunicazione dei risultatifinestreRi: Differenza di ritardo regolabile?Basta aggiungere alcune opzioni possibili se i dati non sono sempre ordinati.
Utilizzo di calcoli matriciali per ottenere gli indici
As Constant(
times = :Time << get as matrix;
batches = :Batch << get as matrix;
);
batch_rows = Loc(batches, :Batch);
batch_first_time_row = batch_rows[Loc Min(times[batch_rows])];
:Result - :Result[batch_first_time_row];
e utilizzando Col Sum per ottenere il valore minimo con confronto e prodotto (se :Time non è il moltiplicatore più piccolo è 0).
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
Ri: Differenza di ritardo regolabile?Il modo più semplice (secondo me) per vedere come funziona è dividere quella formula in tre formule diverse
Il primo (BatchMinRow)
Col Min(Row(), :Batch)
Secondo utilizzando il BatchMinRow (BatchMinVal) appena creato
:Result[:BatchMinRow]
e infine il terzo
:Result - :BatchMinVal
questo rende molto più semplice vedere cosa fanno le diverse parti della formula
Ri: Differenza di ritardo regolabile?Grazie per la risposta estremamente rapida e utile! Rifletterò su come, ma vedo che funziona!
Ri: Differenza di ritardo regolabile?Se i risultati sono ordinati, potresti usare qualcosa del genere:
:Result - :Result[Col Min(Row(), :Batch)]
Col Min(Row(), :Batch) otterrà la prima riga per un batch specifico e quindi potremo accedere a quella riga utilizzando :Result[rownr].

Se i dati non sono sempre ordinati non è un vero problema, ma richiederà una formula diversa