Différence de décalage réglable ?Je ne sais pas comment titrer cela, mais voilà. J'ai des ensembles de données avec plusieurs points temporels par lot. Pour chaque lot, je souhaite calculer la différence entre les résultats à partir du point temporel zéro. J'avais l'habitude de comparer chaque résultat à la colonne min ou max (selon le cas), ce qui fonctionnait bien, mais lorsque les résultats sont un peu instables, le max ou le min peut se produire à un autre moment que zéro.
Je veux la différence (souhaité) comme ci-dessous. Existe-t-il un moyen simple de procéder dans une formule ?

jmp 17.1
Organisation du contenuPersonnalisation de masseIngénierie Qualité et ProcédésPartager et communiquer les résultatsles fenêtresRe : Différence de décalage réglable ?J'ajoute simplement quelques options possibles si les données ne sont pas toujours triées.
Utiliser des calculs matriciels pour obtenir les indices
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];
et en utilisant Col Sum pour obtenir la valeur minimale avec comparaison et produit (si :Time n'est pas le plus petit multiplicateur est 0).
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
Re : Différence de décalage réglable ?Le moyen le plus simple (à mon avis) de voir comment cela fonctionne est de diviser cette formule en trois formules différentes.
Le premier (BatchMinRow)
Col Min(Row(), :Batch)
Deuxièmement, en utilisant le BatchMinRow (BatchMinVal) qui vient d'être créé
:Result[:BatchMinRow]
et enfin le troisième
:Result - :BatchMinVal
cela permet de voir beaucoup plus facilement ce que font les différentes parties de la formule
Re : Différence de décalage réglable ?Merci pour votre réponse extrêmement rapide et utile ! Je vais réfléchir à comment, mais je vois que ça marche !
Re : Différence de décalage réglable ?Si les résultats sont ordonnés, vous pouvez utiliser quelque chose comme ceci :
:Result - :Result[Col Min(Row(), :Batch)]
Col Min(Row(), :Batch) obtiendra la première ligne d'un lot spécifique et nous pourrons ensuite accéder à cette ligne en utilisant :Result[rownr].

Si les données ne sont pas toujours ordonnées, ce n'est pas vraiment un problème, mais cela nécessitera une formule différente.