Numero di righe fino all'eventoSenza usare JSL, c'è un modo per calcolare una colonna che ti dica quante righe sono rimaste prima che si verifichi un evento?
La seguente formula funziona ma richiede che l'utente faccia clic n volte in "Applica"
Possiamo inserire questa formula all'interno di un ciclo for che la "applica" n volte?

AnaliticaTabella datiRe: Numero di righe fino all'eventoNon mi viene in mente nulla di semplice che non richieda JSL che ti consenta di utilizzare la formula originale senza premere applica o utilizzare formule ripetute più volte. Anche la creazione di formule è un po' difficile a causa dell'assenza di variabili in questo caso (anche il ciclo for ha una variabile per l'indice).
Ad esempio questo non può gestire facilmente le ultime righe se non ci sono eventi dopo di loro (anche la formula non è semplice da spiegare):
If(:Event == 1,
0,
For(i = 1, i <= N Rows() - Row(), i++,
If(Lag(:Event, -1*i) == 1,
Break();
);
);
i;
);
Re: Numero di righe fino all'eventoSto cercando una formula che sia molto semplice da spiegare ai nuovi utenti di JMP.
- Aggiungere la mia formula originale all'interno di un ciclo, quindi non è necessario fare clic su applica, sarà il modo più semplice da spiegare.
- L'inversione dell'ordine è intuitiva ma richiede ulteriori passaggi (vedi sopra)
- Una soluzione che crea variabili temporanee sembra uno script trasformato in una formula (mentalità del programmatore, non ideale per i nuovi utenti).
Quindi forse è semplice come chiedere, come posso ripetere una formula in modo che venga applicata N volte?
Re: Numero di righe fino all'eventoA questo punto dovrò chiedere: cosa stiamo cercando qui? Un'unica formula che è anche autoesplicativa?
La formula che ho fornito è una singola formula (richiede una piccola modifica per gestire i casi se non ci sono eventi dopo un punto specifico) ma difficilmente autoesplicativa, ma può avvicinarsi a una utilizzando variabili di supporto con buoni nomi.
Re: Numero di righe fino all'eventoForse possiamo usare il fatto che la soluzione, se l'ordine delle righe è invertito, è popolata automaticamente in JMP?

Ad esempio, questo invertirà l'ordine degli eventi.
Evento invertito:
:Event[(N Rows() - Row()) + 1]
Ora i valori si popolano automaticamente mentre il calcolo funziona dall'alto verso il basso
n righe dopo l'evento invertito:
If( :Event inverted == 1, 0,
Lag( :n rows after inverted event, 1 ) + 1
)
Infine, abbiamo invertito quella colonna.
:n rows after reversed event[(N Rows() - Row()) + 1]
Qualche idea su come farlo in una formula facile da interpretare?
Re: Numero di righe fino all'eventoPotresti usare una formula più complicata. Qualcosa del genere potrebbe funzionare (potrebbe non gestire correttamente tutti i casi speciali):
If(Row() == 1,
m_events = Loc(:Event << get as matrix, 1);
);
smallerRows = Loc(Row() <= m_events);
If(N Items(smallerRows) == 0,
0,
rowNextEvent = m_events[smallerRows[1]];
If(rowNextEvent,
rowNextEvent - Row();
);
);