Ho due date diverse per persone diverse. La prima colonna (A) è il nome della persona. La seconda colonna è (B=data evento indice) e la terza è (C=data intervento). La quarta colonna è la differenza (D) tra le due date "BC/ in days(1)" .
La mia domanda è come consentire a JMP di scegliere un valore specifico in D per ogni persona (A). Devo selezionare il valore nei seguenti tempi:
1- Il valore più vicino in D prima della data dell'evento indice (B). Diciamo che una persona ha i seguenti valori di differenza di data.0, -1, -10. Voglio zero in questo caso
2- Il primo valore in D entro 2 settimane dopo A (0 giorni fino a 14 giorni) diciamo che una persona ha 2, 8, 14. voglio 2
3- Il primo valore in D dopo 2 settimane da A (15 giorni o più) Diciamo che una persona ha 17, 25, 35. voglio 17
Qualche possibilità che tu possa condividere una tabella di dati di esempio per renderlo più chiaro? La funzione Tables...Anonymize può rendere le cose più facili da condividere, se PII o informazioni proprietarie non possono essere condivise.
CIAO,
Come menziona Jed, più contesto è meglio, ma penso di vedere quello che vuoi.
Nel caso (1), un massimo, ma solo tra quelle differenze minori o uguali a zero.
Nel caso (2), un minimo, ma solo tra le differenze comprese tra 0 e 14, inclusi.
Nel caso (3), un minimo, ma solo tra quelle differenze 15 o superiori.
Se questo è ciò che vuoi, allora in ogni caso puoi usare la stessa idea:
1) Imposta dinamicamente i dati che NON vuoi perdere, e poi
2) Calcola il massimo o il minimo dei dati, ignorando i dati mancanti.
Nel codice seguente, ogni formula ha la stessa struttura:
Col <> ( If ( voglio ignorare i dati, renderli mancanti, altrimenti utilizzare i dati originali), <> ).
Quindi quali dati vogliamo ignorare?
Nel caso ( 1 ), è :diff > 0... qualsiasi differenza maggiore di 0
Nel caso (2), lo è! ( 0 <= :diff <= 14)... qualsiasi differenza non compresa tra 0 e 14 inclusi
Nel caso ( 3 ), è :diff < 15... qualsiasi differenza inferiore a 15
Eseguendo il codice vedrai una tabella come quella qui sotto. Nel mio codice, la colonna di raggruppamento è la colonna "persona" ... e ho appena simulato le differenze, poiché dalla tua descrizione è la colonna di interesse.
Saluti,
Brady
Names Default To Here( 1 );
nr = 50;
dt = New Table( "ex",
New Column( "Person", character, <<SET values=""> 0, ., :diff ), :Person ) ) );
dt << New Column( "form_2", formula( Col Min( If( !(0 <= :diff <= 14), ., :diff ), :Person ) ) );
dt << New Column( "form_3", formula( Col Min( If( :diff < 15, ., :diff ), :Person ) ) );</SET>
