Einstellbare Verzögerungsdifferenz?Ich weiß nicht, wie ich das betiteln soll, aber hier ist es. Ich habe Datensätze mit mehreren Zeitpunkten pro Stapel. Für jede Charge möchte ich die Differenz der Ergebnisse zum Zeitpunkt Null berechnen. Früher habe ich jedes Ergebnis mit dem Minimum oder Maximum der Spalte (je nach Bedarf) verglichen, was gut funktioniert hat, aber wenn die Ergebnisse etwas schwanken, kann das Maximum oder Minimum zu einem anderen Zeitpunkt als Null auftreten.
Ich möchte das (gewünschte) Diff wie unten. Gibt es eine einfache Möglichkeit, dies in einer Formel zu tun?

jmp 17.1
InhaltsorganisationMassenanpassungQualitäts- und VerfahrenstechnikErgebnisse teilen und kommunizierenWindowsBetreff: Einstellbare Verzögerungsdifferenz?Fügen Sie einfach einige mögliche Optionen hinzu, wenn die Daten nicht immer sortiert sind.
Verwendung von Matrixberechnungen zur Ermittlung der Indizes
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];
und Col Sum verwenden, um den Mindestwert mit Vergleich und Produkt zu erhalten (wenn :Time nicht ist, ist der kleinste Multiplikator 0).
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
Betreff: Einstellbare Verzögerungsdifferenz?Der einfachste Weg (meiner Meinung nach) zu sehen, wie es funktioniert, besteht darin, diese Formel in drei verschiedene Formeln zu unterteilen
Erstes (BatchMinRow)
Col Min(Row(), :Batch)
Zweitens mit der gerade erstellten BatchMinRow (BatchMinVal)
:Result[:BatchMinRow]
und schließlich der dritte
:Result - :BatchMinVal
Dadurch ist es viel einfacher zu erkennen, was die verschiedenen Teile in der Formel bewirken
Betreff: Einstellbare Verzögerungsdifferenz?Vielen Dank für die äußerst schnelle und nützliche Antwort! Ich werde darüber nachdenken, wie, aber ich sehe, dass es funktioniert!
Betreff: Einstellbare Verzögerungsdifferenz?Wenn die Ergebnisse geordnet sind, könnten Sie etwa Folgendes verwenden:
:Result - :Result[Col Min(Row(), :Batch)]
Col Min(Row(), :Batch) ruft die erste Zeile für einen bestimmten Batch ab und dann können wir mit :Result[rownr] auf diese Zeile zugreifen.

Wenn die Daten nicht immer geordnet sind, ist das kein wirkliches Problem, aber es erfordert eine andere Formel