Berechnen Sie die Zeitdifferenz und summieren Sie die WerteIch habe eine Tabelle mit einer Zeitspalte mit diesem Format: m/d/yh:m:s
Ich möchte eine neue Spalte namens CumTimeSec erstellen, die den kumulativen Zeitunterschied bis zu dieser Zeile anzeigt.
Zum Beispiel,
Zeit
| Zeit | CumTimeSec |
11.05.2022 17:30:03 Uhr | 0 |
11.05.2022 17:30:08 Uhr | 5 |
| 11.05.2022 17:30:20 Uhr | 17 |
| 11.05.2022 17:30:23 Uhr | 20 |
Ich dachte, ich könnte diesen Code verwenden, um die Differenz zwischen den einzelnen Zeilen zu berechnen, aber ich bin mir nicht sicher, wie ich die Werte summieren soll
dt << New Column( "CumTimeSec",
Numeric,
"Continuous",
formula( :Time - Lag( :Time) )
);
SkripterstellungBetreff: Zeitdifferenz berechnen und Werte aufsummierenHallo Lavik17,
Verzögerung ist für diese Anwendung nützlich, aber Sie müssen sie ein paar Mal verwenden.Beachten Sie, dass Dif() die Differenz zwischen der aktuellen Zeile und einer "Lag"-Zeile nimmt.Zum Beispiel berechnen Sie oben :Time - Lag(:Time).Das ist dasselbe wie Dif(:Time).
Hier ist ein Beispiel, das Sie mit JMP-Beispieldaten ausführen können.Die Tabelle listet nur eine Folge von Jahren auf, funktioniert aber genauso für eine Zeitspalte.
dt = Open("$SAMPLE_DATA/Time Series/SeriesQ.jmp");
dt << New Column("CumTimeYear", Formula(
If( Row() > 1,
Lag( :CumTimeYear ) + Dif( :Year )
, // else first row
0
)
));