Hier ist das einfache Skript, das eine neue Spalte mit einer Formel erstellt, die die Dauer ab dem Beginn jedes Stapels berechnet

names default to here( 1 );
dt = Current Data Table();
dt << New Column( "Duration",
Format( ":day:hr:m:s", 21, 3 ),
formula(
If( Row() == 1 | :Batch != Lag( :Batch ),
start = :Timestamp
);
:Timestamp - start;
)
);
Hallo zusammen,
Ich habe angefangen, JSL zu verwenden und bin derzeit auf Anfängerniveau.
Meine Daten bestehen aus Zeitreihen-Batchdaten für verschiedene Prozessvariablen. Jede Charge hat einen anderen Zeitreihenbereich / eine andere Verarbeitungszeit. Die Datenauflösung beträgt 1 Stunde.

Zuerst möchte ich die Stapelstartzeit (Echtzeit) in die Dauer umwandeln, die am Zeitpunkt Null (0) beginnt, und dann bis zum Ende in Echtzeit akkumulieren. Ich glaube, ich schaffe das mit einem Skript, das ich online gefunden habe. Dies funktioniert jedoch nur für die erste Charge.
Für den zweiten Stapel beginnt die Echtzeitumrechnung in die Dauer nicht zum Zeitpunkt Null.
Frage: Wie kann ich das Skript erstellen / ändern, damit es für jede Stapel-ID und die jeweilige Verarbeitungszeit berücksichtigt wird?
Danke im Voraus
SKRIPT
names default to here (1);
dt = current data table ();
dt << New Column( "Duration",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1, 0, :TimeStamp - :TimeStamp[1] ) / 60
)
);
Diese Alternative verwendet eine integrierte Funktion, Col Minimum (x, Gruppe).

Vielen Dank Mark. Es funktioniert sehr gut. Frohe Weihnachten 