@Aam_jmp ,
在您的具體示例中,以下內容可行:
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")))); 
但是,您必須在此方法中每次調整最後一列。
更一般化的方法如下所示:
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^];
);
) ; ]\" )));
);嗯,這是我唯一的目標。為了製作表格,我在列中沒有重複的名稱。
@Aam_jmp ,
由於數據的性質是字符而不是數字,我想知道這是否可能以直接的方式進行。
我可以想到的一種方法是 - 通過映射字符列的每個唯一值,使用等效數字製表並重新映射到字符值。我不知道你是否想要走那條路並且不必要地使它複雜化。
如果您可以分享您的整個目標,也許可能有更好的方法來處理這個問題?
@uday_guntupalli 我已經嘗試過這樣做了。這似乎為列中存在的每個值創建了一個新列。我想知道JMP中是否有任何選項可以幫助我獲得這樣的東西:

@Aam_jmp ,
我認為Tabulate仍然可以工作。如果您有一個新列“Test”和Tabulate,您最終會得到這樣的結果:

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
如果這不符合您的要求,請善意顯示您的數據(如樣本) - 所以我可以看到我在哪裡。
@Aam_jmp ,
使用Summarize或製表
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