Calcolare la differenza oraria e sommare i valoriHo una tabella con una colonna temporale con questo formato: m/d/yh:m:s
Vorrei creare una nuova colonna chiamata CumTimeSec che mostrerà la differenza di tempo cumulativa fino a quella riga.
Per esempio,
Tempo
| Tempo | CumTimeSec |
11/05/2022 17:30:03 | 0 |
11/05/2022 17:30:08 | 5 |
| 11/05/2022 17:30:20 | 17 |
| 11/05/2022 17:30:23 | 20 |
Ho pensato che avrei potuto usare questo codice per calcolare la differenza tra ogni riga, ma non sono sicuro di come sommare i valori
dt << New Column( "CumTimeSec",
Numeric,
"Continuous",
formula( :Time - Lag( :Time) )
);
Personalizzazione di massaRe: Calcolare la differenza di tempo e sommare i valoriGrazie @_jr !! Ha funzionato come un fascino!!
Re: Calcolare la differenza di tempo e sommare i valoriNon hai mai usato Dif prima, ma potresti combinarlo Col Cumulative Sum
Col Cumulative Sum(Dif(:Time))
Re: Calcolare la differenza di tempo e sommare i valoriCiao Lavik17,
Lag è utile per questa applicazione, ma è necessario utilizzarlo un paio di volte.Si noti che Dif() prende la differenza tra la riga corrente e una riga "lag".Ad esempio, sopra si calcola :Time - Lag(:Time).È lo stesso di Dif(:Time).
Ecco un esempio che puoi eseguire con i dati campione di JMP.La tabella elenca solo una sequenza di anni, ma funzionerà allo stesso modo per una colonna temporale.
dt = Open("$SAMPLE_DATA/Time Series/SeriesQ.jmp");
dt << New Column("CumTimeYear", Formula(
If( Row() > 1,
Lag( :CumTimeYear ) + Dif( :Year )
, // else first row
0
)
));