Manipolazioni di colonneHo tabelle che contengono dati nel seguente ordine:

Voglio che tutte le tabelle assomiglino a questo:

Come posso ottenere questo in jsl?
Ri: manipolazioni di colonne @Aam_jmp ,
Nel tuo esempio specifico, il seguente potrebbe funzionare:
Clear Log(); Clear Globals();
dt = Current Data Table();
dt2 = (dt << Tabulate(
Set Format( N( 9, "Best" ) ),
Add Table(
Column Table( Analysis Columns( :Age, :Height, :Weight ) ),
Column Table( Grouping Columns( :Result ) ),
Row Table( Grouping Columns( :Name ) )
)
)
) << Make Into Data Table;
dt2 << New Column("Result",Character,Nominal,Formula(If(:Fail==1,"Fail",If(:Pass==1,"Pass")))); 
Tuttavia, dovrai regolare l'ultima colonna ogni volta in questo approccio.
Di seguito viene mostrato un approccio più generalizzato:
Clear Log(); Clear Globals();
dt = Current Data Table();
CharValsAA = Associative Array(dt:Result);
Results = CharValsAA << Get Keys;
for(i = 1, i < N Items(Results), i++,
If(!IsMissing(Results[i]),
,
Remove From(Results,i);
);
);
dt2 = (dt << Tabulate(
Set Format( N( 9, "Best" ) ),
Add Table(
Column Table( Analysis Columns( :Age, :Height, :Weight ) ),
Column Table( Grouping Columns( :Result ) ),
Row Table( Grouping Columns( :Name ) )
)
)
) << Make Into Data Table;
nR = N Rows(dt2);
// Short sighted approach
//dt2 << New Column("Result",Character,Nominal,Formula(If(:Fail==1,"Fail",If(:Pass==1,"Pass"))));
// Generalized Approach
dt2 << New Column("Test",Character,Nominal, Set Each Value("a"));
for(i = 1, i <= N Items(Results), i++,
VarName = Results[i];
Eval(Parse(Eval Insert("\[ Temp_^i^ = Loc(dt2:^VarName^ << Get Values) ; ]\" )));
Eval(Parse(Eval Insert("\[ for(r = 1, r <= N Rows(Temp_^i^), r++,
If(Temp_^i^[r] > 0,
dt2:Test[Temp_^i^[r]] = Results[^i^];
);
) ; ]\" )));
);Ri: manipolazioni di colonneBene, questo è il mio unico obiettivo. Per fare in modo che le tabelle non abbiano nomi ripetitivi nella colonna.
Ri: manipolazioni di colonne @Aam_jmp ,
Data la natura dei dati che sono caratteri e non numerici, mi chiedo se ciò sia possibile in modo diretto.
Un modo in cui posso pensare di farlo è - mappando ogni valore univoco della colonna di caratteri, tabulando usando l'equivalente numerico e rimappando i valori dei caratteri. Non so se vorresti seguire questa strada e complicarla inutilmente.
Se forse hai condiviso il tuo intero obiettivo, forse potrebbe esserci un modo migliore per gestirlo?
Ri: manipolazioni di colonne @uday_guntupalli Ho già provato a farlo. Questo sembra creare una nuova colonna per ogni valore presente nella colonna. Vorrei sapere se c'è qualche opzione in JMP che potrebbe aiutarmi ad acquisire qualcosa del genere:

Ri: manipolazioni di colonne @Aam_jmp ,
Penserei che Tabulate possa ancora funzionare. Se avessi una nuova colonna "Test" e Tabulati si finirebbe con qualcosa del genere:

dt = Current Data Table();
dt1 = (dt << Tabulate(
Set Format( N( 9, "Best" ) ),
Add Table(
Column Table( Analysis Columns( :Age, :Height, :Weight ) ),
Column Table( Grouping Columns( :Test ) ),
Row Table( Grouping Columns( :Name ) )
)
)) << Make Into Data Table
Se questo non risolve ciò che stai chiedendo, mostra gentilmente come sono i tuoi dati (come un campione) - così posso vedere dove sono fuori.
Ri: manipolazioni di colonne @uday_guntupalli Cosa succede se una delle colonne che ho ha tipo di dati di carattere?
Ri: manipolazioni di colonne @Aam_jmp ,
Utilizzare Riepiloga o tabulato
dt = Current Data Table();
dt1 = (dt << Tabulate(
Add Table(
Column Table( Analysis Columns( :Age, :Height, :Weight ) ),
Row Table( Grouping Columns( :Name ) )
)
)) << Make Into Data Table