Scripting einer Schleife (Doppelschleife vielleicht)Hallo,
Ich benötige Hilfe beim Erstellen eines Skripts für einen Kunden (siehe angehängte Datei).
Er möchte die Spalte "relative Zeit" automatisch in JMP berechnen (während sie hier offline in Excel berechnet wird).
Wenn für jede "Chargennummer" "Neuer Chargenauslöser" = 1 ist, wird das "Datum / die Uhrzeit" der entsprechenden Zeile als Referenz verwendet (es wird auf "0" gesetzt) und die "relative Zeit" wird als [Datum "berechnet / Zeit i - Datum / Uhrzeit ref].
Ich bin noch nicht wirklich "Skript fließend", jede Hilfe wäre dankbar.
Danke.
Emmanuel
Betreff: Scripting einer Schleife (Doppelschleife vielleicht)Hallo Emmanuel,
Der einfachste Weg, dies zu tun, ist die interaktive Verwendung von Spaltenformeln.
- Bearbeiten Sie zunächst die Spaltenformel, die Sie bereits für das neue Stapelflag haben, um die erste Zeile zu berücksichtigen. Wir wollen, dass der Wert auch hier gleich 1 ist. Dann haben wir 1 für die erste Zeile und jede Zeile, die die Kriterien für "neue Charge" erfüllt. (Siehe Formelbild direkt unten.)
- Fügen Sie eine Spaltentransformation für die kumulative Summe der Zeile "Neuer Stapel" hinzu. Dies bewirkt, dass jede Charge nummeriert wird, wodurch eine Gruppierung ermöglicht wird. (Siehe Nummer-Screenshot und Screenshot der Datentabelle, um die Nummerierung zu sehen.)
- Fügen Sie eine Formelspalte hinzu, um die Differenz zwischen der Zeit und der Mindestzeit der Spalte zu berechnen, gruppiert nach der Zeile, die Sie in Schritt 1 oben hinzugefügt haben (siehe Screenshot der 3. Formel und Screenshot der Datentabelle, um zu sehen, wie die relative Zeit für jede neue Gruppe auf 0 zurückgesetzt wird.)




Wenn der Kunde darauf besteht, ein Skript zu erstellen, finden Sie hier ein Skript, das die Formel in der Spalte "Neuer Batch-Trigger" korrigiert und die letzten beiden Spalten in der obigen Tabelle hinzufügt.
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 ) ) );
Tabelle beigefügt.
Prost,
Brady
Betreff: Scripting einer Schleife (Doppelschleife vielleicht)Hallo Brady,
Danke. Ich bin immer noch etwas verwirrt, da es nicht mit ihrer eigenen Spalte "Relative Zeit" korreliert. Ich denke, das Problem kommt von der Tatsache, dass sich ihre Referenzzeile in der "Mitte" des Loses befindet und es daher eine negative "relative Zeit" gibt.
Emmanuel
Betreff: Scripting einer Schleife (Doppelschleife vielleicht)Ich habe letztendlich eine Spaltenformel mit Index- und Zeilenfunktion verwendet (das war mir zum Zeitpunkt der Veröffentlichung der Anfrage nicht bekannt).
