以下の順序でデータを持つテーブルがあります。

すべてのテーブルをこのようにします。

どのように私はJSLでこれを達成することができますか?
@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 、
データの性質が数値ではなく文字であるため、これが簡単な方法で可能かどうか疑問に思います。
私が考えることができる1つの方法はそれです - 文字列のそれぞれのユニークな値をマッピングして、同等の数値を使用して表を作成して文字値に再マップすることです。私はあなたがその道に行きたくて不必要にそれを複雑にしたいと思うかどうかわからない。
あなたがあなたの全体の目的を共有するかもしれないならば、おそらくこれを処理するためのより良い方法があるかもしれません?
@uday_guntupalli 私はすでにこれをやってみました。これは、列に存在するすべての値に対して新しい列を作成するようです。私がJMPにこのようなものを取得するのに役立つオプションがあるかどうかを知りたいのですが。

@Aam_jmp 、
Tabulateはまだうまくいくと思います。新しい列 "Test"を作成して表を作成した場合は、次のようになります。

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
これがあなたが求めていることに対処していないのであれば、あなたのデータがどのように見えるかを親切に見せてください(サンプルのように)。
@uday_guntupalli 自分の持っている列の1つに文字データ型があるとどうなりますか?
@Aam_jmp 、
要約または表を使用する
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