<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sto cercando di scrivere uno script confrontando le righe per gruppo, ma ho difficoltà a capire come farlo Nella tabella seguente, sto cercando di selezionare le righe che soddisfano entrambe le seguenti condizioni all'interno di un gruppo (ovvero per colonna "Numero soggetto"):
- Il valore nella colonna "Target # Days from Previous" è maggiore della riga con un valore pari a zero (nell'esempio sotto le righe evidenziate da 71 a 82 hanno valori maggiori del valore per la riga 83)
- Il valore nella colonna "Visit Sequence" è inferiore al valore in questa colonna per la riga in cui "Target # Days from Previous" è uguale a zero (nell'esempio sotto le righe 71 evidenziate sebbene 82 abbiano valori inferiori al valore per la riga 83)
Fondamentalmente sto cercando di confrontare le righe all'interno di un gruppo con un'altra riga all'interno dello stesso gruppo e farlo per l'intera tabella.Qualcuno sa come posso fare questo?

Grazie,
Cristina
Un altro approccio consiste nel creare semplicemente una nuova variabile e ricodificarla in base ai gruppi desiderati.
Cristina,
Ecco uno script che fa quello che stai chiedendo.L'ho testato sul piccolo frammento di dati che hai fornito e sembra realizzare ciò che desideri.
I nomi predefiniti sono qui ( 1 ) ;
dt = Tabella dei dati correnti () ;
// Crea una nuova colonna per tenere traccia dei gruppi trovati
dt << Nuova Colonna ( "Raggruppamento" , imposta ciascun valore ( . ) ) ;
countGroup = 0 ;
// Esamina tutti i dati
Per ( io = 1 , io <= N righe (dt) - 1 , io ++,
// Guarda avanti per vedere se i criteri di attivazione sono stati soddisfatti
// e se lo ha, allora leggi all'indietro finché non fallisce
Se ( dt : Nome ( "Obiettivo # giorni dal precedente" ) > dt : Nome ( "Obiettivo # giorni dal precedente" )[io + 1 ] & dt : Sequenza visita < dt : Sequenza di visita[i + 1 ] ,
// Il trigger è stato trovato, quindi leggi all'indietro finché non è vero
countGroup ++;
compareStart = io ;
Mentre ( dt : Nome ( "Obiettivo # giorni dal precedente" )[confrontareInizio] > dt : Nome ( "Obiettivo # giorni dal precedente" )[io + 1 ] & dt : Sequenza di visita[ confrontaInizio] < dt : Sequenza di visita[i + 1 ] ,
dt : Raggruppamento[confrontaInizio] = countGroup ;
Selezionato ( Stato riga ( confrontaInizio ) ) = 1 ;
compareStart --;
) ;
)
) ;
Non sono sicuro di aver capito cosa stai cercando.
Potere ' Target # giorni dal precedente ' essere un numero intero minore di zero? In caso contrario, non tutte le righe per un dato argomento tranne una soddisfano la tua prima condizione?
Forse puoi pubblicare un tavolo con il tre colonne che devi manipolare (Soggetto, Target e Sequenza di visita? Utilizza l'"Editor avanzato", quindi "Allega".