Quindi, ho delle righe per ogni visita clinica. Al momento, tutte le date delle visite cliniche sono registrate nella stessa colonna in "DateSeen". Invece, ho bisogno di una singola riga per ogni ID paziente e ho bisogno di creare una colonna separata per ogni visita (cronologica). Ad esempio "prima visita, seconda visita, terza visita", ecc. Fino alla quinta visita.
Qualcuno può aiutare? Per ovvi motivi, non posso condividere i dati reali ma qui ci sono alcuni dati fittizi.
| ID | DateSeen |
| 8 | 2016/05/03 |
| 8 | 2015/06/20 |
| 1 | 2013/12/03 |
| 10 | 2012/02/28 |
| 9 | 2013/09/13 |
| 9 | 2014/08/23 |
| 6 | 7/10/2008 |
| 3 | 2014/01/01 |
| 2 | 2011/06/15 |
| 5 | 4/1/2011 |
| 1 | 2014/02/26 |
| 3 | 2016/04/30 |
| 1 | 2015/08/06 |
| 9 | 5/9/2009 |
| 4 | 10/1/2011 |
| 2 | 2011/07/23 |
| 8 | 2013/10/05 |
| 8 | 1/10/2009 |
| 1 | 2016/08/11 |
| 9 | 2015/06/06 |
| 7 | 2014/09/20 |
| 3 | 2015/11/21 |
| 2 | 2014/03/01 |
| 9 | 1/8/2010 |
| 6 | 2015/08/01 |
| 3 | 2016/08/06 |
| 3 | 2013/11/09 |
| 4 | 2011/08/27 |
| 1 | 2014/07/11 |
| 10 | 2009/10/31 |
| 2 | 2015/04/01 |
| 2 | 8/11/2007 |
| 5 | 2014/07/18 |
| 9 | 2013/10/15 |
Apparentemente ho causato un po 'di confusione. Nello script che ho incluso, avevo incluso un passaggio che creava la tabella di dati che avevi incluso nella tua prima affermazione. Quella parte del mio codice era solo per rendere ciò che ho risposto con la possibilità di eseguire alcuni dati di esempio. La parte della sceneggiatura che esegue effettivamente il lavoro può essere eseguita con un numero illimitato di pazienti. Quindi tutto ciò che devi fare è creare la grande tabella di dati, e per eseguire l'ultima parte dello script che ho creato. Assicurati che la colonna ID paziente sia chiamata "ID" e la colonna della data sia chiamata "Data / Visto". Inoltre, la colonna "Data / Visto" deve essere una colonna di data JMP numerica.
// Sort the table so that all visits for a given individual are together
// and in asscending order of the visit date
dt << Sort( By( :ID, :Name( "Date/Seen" ) ), Order( Ascending, Ascending ), Replace table( 1 ) );
// Create a new column which is just a simple counter of the visit number
dt << New Column( "Visit Number",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Lag( :ID ) != :ID,
num = 1,
num = num + 1
);
num;
)
);
// Split the data by the visit number
dt << Split(
Split By( :Visit Number ),
Split( :Name( "Date/Seen" ) ),
Group( :ID ),
Sort by Column Property
);
Sei fantastico!! Grazie mille! Questo mi stava stressando! Spero che tu ottenga un upgrade gratuito alla prima classe sul tuo prossimo volo. 
Ecco un semplice script che fa ciò che vuoi. Se segui i passaggi nello script, fare queste 3 operazioni è facile da eseguire in modo interattivo
Names default to here( 1 );
// Input the original data table
dt = New Table( "Patient Visits",
Add Rows( 34 ),
New Column( "ID",
Character,
"Nominal",
Set Values(
{"8", "8", "1", "10", "9", "9", "6", "3", "2", "5", "1", "3", "1", "9", "4", "2", "8", "8", "1",
"9", "7", "3", "2", "9", "6", "3", "3", "4", "1", "10", "2", "2", "5", "9"}
)
),
New Column( "Date/Seen",
Numeric,
"Nominal",
Format( "m/d/y", 12 ),
Input Format( "mmddyyyy" ),
Set Selected,
Set Values(
[3545078400, 3517603200, 3468873600, 3413232000, 3461875200, 3491596800, 3298492800, 3471379200,
3390940800, 3384460800, 3476217600, 3544819200, 3521664000, 3324672000, 3400272000, 3394224000,
3463776000, 3314390400, 3553718400, 3516393600, 3494016000, 3530908800, 3476476800, 3345753600,
3521232000, 3553286400, 3466800000, 3397248000, 3487881600, 3339792000, 3510691200, 3269635200,
3488486400, 3464640000]
)
)
);
// Sort the table so that all visits for a given individual are together
// and in asscending order of the visit date
dt << Sort( By( :ID, :Name( "Date/Seen" ) ), Order( Ascending, Ascending ), Replace table( 1 ) );
// Create a new column which is just a simple counter of the visit number
dt << New Column( "Visit Number",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Lag( :ID ) != :ID,
num = 1,
num = num + 1
);
num;
)
);
// Split the data by the visit number
dt << Split(
Split By( :Visit Number ),
Split( :Name( "Date/Seen" ) ),
Group( :ID ),
Sort by Column Property
);