Assegnando "esecuzioni" sequenziali un valore basato su datetime dal minimo al massimo.Ciao gente,
Ho cercato un modo per farlo ma non l'ho ancora trovato online.
Ho diverse corse che hanno un ID univoco, in questo caso userò l'etichetta CAR1 per identificare in modo univoco un veicolo. Questo veicolo avrà più timestamp come mostrato
Tempo del veicolo
CAR1 10:10
CAR1 12:30
CAR1 17:30
Voglio trovare un modo per poter etichettare ogni riga in sequenza in questo modo usando una nuova colonna n.
Tempo del veicolo N
CAR1 10:10 1
CAR1 12:30 2
CAR1 17:30 3
C'è un modo rapido per codificarlo.
Vorrei che JMP rilevi la modifica alla CAR successiva qui, quindi se avessi voci per CAR2 che abbia il proprio contatore e inizi a 1 per il timestamp precedente.
Tempo del veicolo N
CAR1 10:10 1
CAR1 12:30 2
CAR1 17:30 3
CAR2 14:10 1
CAR2 18:30 2
CAR2 19:30 3
Qualsiasi aiuto molto apprezzato.
Grazie!
Re: Assegnazione di "esecuzioni" sequenziali di un valore basato su datetime dal minimo al massimo.Potresti anche provare:
Col Rank( :PDATETIME, :CAR )
che potrebbe avere alcuni vantaggi (a seconda di ciò che si può e non si può presumere sull'ordinamento iniziale nella tabella).
Re: Assegnazione di "esecuzioni" sequenziali di un valore basato su datetime dal minimo al massimo.Funziona perfettamente, grazie!

Re: Assegnazione di "esecuzioni" sequenziali di un valore basato su datetime dal minimo al massimo.Una formula restituisce l'ultimo elemento calcolato e, a quanto pare, non riconosce il valore di conteggio quando viene valutato il primo elemento nella funzione If().Quindi la soluzione è semplicemente forzare il conteggio come ultimo elemento valutato nella formula:
If( :CAR != Lag( :CAR ),
count = 1,
count
++);
count;
Re: Assegnazione di "esecuzioni" sequenziali di un valore basato su datetime dal minimo al massimo.Grazie mille per la tua risposta @txnelson
, ho esaminato le funzioni LAG e DIF e ora ho familiarità con ciò che fanno. Ho provato quella formula che hai suggerito, è vicina a ciò che sto cercando, ma etichetta sia la prima istanza che la seconda istanza all'interno di un gruppo come 1 e avvia la sequenza dopo. C'è un modo per iniziare la sequenza da 1 e aumentare da lì in poi. Questo sarebbe estremamente utile ed è qualcosa che userò quasi ogni giorno.

Re: Assegnazione di "esecuzioni" sequenziali di un valore basato su datetime dal minimo al massimo.Questa è una domanda frequente nel forum di discussione.Una ricerca di "Sequenza" ne troverà molti. Tuttavia, ecco una formula semplice da usare
If( :Vehicle != Lag( :Vehicle ),
count = 1,
count
++)