グループ化変数によるすべての数値列の要約統計以前誰かが書いた別の JSL の一部を拝借しましたが、残念ながらその人はもう会社を辞めてしまいました。
オリジナルの JSL は、変数をグループ化 (「分割」) して、すべての数値列の要約統計を含むテーブルとともにボックス プロットを作成します。
私の目標は、グループ化変数によるすべての数値列の要約統計量 (平均、標準偏差) を含む要約テーブルのみを取得することです。
JMP16を使用しています。
サンプル入力データ テーブルには、200 個の数値列と、グループ化文字変数 ("split") の 5 つの一意の値を持つ数千の行があります。
出力サマリー テーブルには、平均値の 5 列と標準偏差の 5 列を含む 200 行が含まれます。新しい列 (10) のそれぞれは、グループ化文字変数 ("split") の各一意の値でグループ化された各数値列の平均値/標準偏差です。
ありがとう
自動化とスクリプト品質およびプロセスエンジニアリングウィンドウズRe: グループ化変数によるすべての数値列の要約統計JSLで発生したエラーを投稿するのを忘れました
ありがとう

Re: グループ化変数によるすべての数値列の要約統計分散分析を生成する JMP プラットフォームの JSL がコードにありません。提供された JSL で変数 "vv" が使用されている方法は、一元分析または適合モデルからの出力表示を指しているようです。提供されたコードにはそのような参照が見つかりません。
推測して、コードに Oneway を追加しました。出力は生成されますが、それが目的のものであるかどうかを確認する必要があります。
Input = Dialog( "Please Set Pvalue Limit", Pvalue_Threshold = EditNumber( 0.15 ), Button( "OK" ), Button( "Cancel" ) );
Pvaluelimit = Input[1];
vl = V List Box( Text Box( "Vmap Comparison" ) );
vl1 = V List Box();
vl2 = V List Box();
counter = 0;
i = 0;
k = 0;
j = 0;
w = 0;
WorkTable= current data table();
GetColName = WorkTable << get column names( Numeric );
Show( GetColName );
SumDT = New Table( "SummaryData" );
SumDT << New Column( "MDUT_Data", Character, Nominal, width( 30 ), values( GetColName ) );
SumDT << New Column( "P-Value", Numeric, Continuous );
nc1 = 1;
Temp = Data Table( WorkTable ) << Summary( Group( SPLIT ) );
nsplits = N Row( Temp );
SplitDef = Column( 1 ) << Get As Matrix;
Show( SplitDef, nsplits );
Close( Temp, no save );
For( i = 1, i <= nsplits, i++,
MeanCol = "Mean of " || Splitdef[i];
SumDT << New Column( MeanCol );
);
For( i = 1, i <= nsplits, i++,
SigmaCol = "Sigma of " || Splitdef[i];
SumDT << New Column( SigmaCol );
);
Current Data Table( SumDT );
For Each Row(
CurrentMDUT = Column( SumDT, "MDUT_Data" )[];
Current Data Table( WorkTable );
MeanCal = Summarize(
ExpCol = by( SPLIT ),
c = count,
meanD = Mean( Eval( CurrentMDUT ) ),
Sig = Std Dev( Eval( CurrentMDUT ) )
);
Current Data Table( SumDT );
For( w = nc1 + 2, w <= nsplits + nc1 + 1, w++,
BB = meanD[w - nc1 - 1];
Column( w )[] = BB;
CC = Sig[w - nc1 - 1];
Column( w + nsplits )[] = CC;
);
Current Data Table( WorkTable );
vx=worktable << Oneway( Y( column(SumDT:MDUT_Data[row()]) ), X( :Split ), Means( 1 ), Mean Diamonds( 1 ) );
vv=report(vx);
Pvalue = vv["Analysis of Variance"][Number Col Box( 5 )] << get( 1 );
Current Data Table( SumDT );
Column( nc1 + 1 )[] = Pvalue;
Current Data Table( WorkTable );
vv << close window;
If( Pvalue < Pvaluelimit,
counter = counter + 1;
layoutflag = Mod( counter, 2 );
If( layoutflag > 0,
vl1 << append( vv ),
vl2 << append( vv )
);
);
);
Re: グループ化変数によるすべての数値列の要約統計迅速な対応ありがとうございます。
新しい JSL は動作し、望ましい結果が得られますが、遅いと思います。
非常に大きなデータセットにこのスクリプトを使用したいと考えています。
パフォーマンスを向上させるオプションはありますか? ありがとうございます。
Re: グループ化変数によるすべての数値列の要約統計レスポンススクリーニングプラットフォームを使用してp値を取得すると、スクリプトの実行速度が大幅に向上します。また、平均と標準偏差を生成するためにTabulateプラットフォームを使用すると、より効率的になります。
上記の提案を使用してサマリー テーブルを作成する方法の例を次に示します。元のスクリプトでは何も行われなかったため、PValue 制限は除外しました。

Names Default To Here( 1 );
WorkTable = Current Data Table();
GetColName = WorkTable << get column names( Numeric );
// Generate the mean/std table
tab = WorkTable << (Tabulate(
Add Table(
Column Table( Grouping Columns( :split ), Statistics( Mean ) ),
Column Table( Grouping Columns( :split ), Statistics( Std Dev ) ),
Row Table( Analysis Columns( Eval( GetColName ) ) )
)
));
tab << Make Into Data Table;
tab << close window;
SumDT = Current Data Table();
SumDT << set name( "SummaryData" );
// Generate the p-values
rs = WorkTable << Response Screening(
Y( Eval( GetColName ) ),
X( :split ),
PValues Table on Launch( 1 )
);
ResponseDT = rs << get PValues;
Report( rs ) << close window;
ResponseDT << select columns( {"Y", "PValue"} );
ResponseDT << Invert Column Selection;
ResponseDT << delete columns;
ResponseDT:Y << set name( "Analysis Columns" );
SumDT << Update( With( ResponseDT ), Match Columns( :Analysis Columns = :Analysis Columns ) );
SumDT << Select columns( :PValue );
SumDT << Move Selected Columns( After( :Analysis Columns ) );
Close( ResponseDT, nosave );
これにより、正確な仕様を満たすスクリプトを完成させるのに役立ちます。
JMP ドキュメント ライブラリの [ヘルプ] プルダウン メニューにあるスクリプト ガイドをじっくり読むことをお勧めします。
Re: グループ化変数によるすべての数値列の要約統計別の提案として、一時的に積み重ねられたテーブルを生成し、テーブル/サマリーをグループ(元の列) とサブグループ(分割) のオプションと組み合わせて使用することもできます。

dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
tmp = dt <<
Stack(
columns( Column Group( "Processes" ) )
);
tmp << Summary(
Group( :Label ),
Mean( :Processes ),
Std Dev( :Processes ),
Subgroup( :SITE ),
statistics column name format( "stat" )
);