그룹화 변수별 모든 숫자 열의 요약 통계저는 누군가가 얼마 전 쓴 JSL의 일부를 빌렸지만, 불행히도 그 사람은 회사를 그만두었습니다.
원래 JSL은 모든 숫자형 열의 요약 통계를 변수별로 그룹화하여 표와 함께 상자 그림을 만듭니다("분할").
제 목표는 변수를 그룹화하여 모든 숫자형 열의 요약 통계(평균, 표준편차)가 포함된 요약 표만 얻는 것입니다.
저는 JMP16을 사용하고 있습니다.
샘플 입력 데이터 테이블에는 200개의 숫자 열과 수천 개의 행이 있으며, 그 행에는 5개의 고유한 그룹화 문자 변수("split") 값이 있습니다.
출력 요약 표에는 평균을 나타내는 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: 그룹화 변수별 모든 숫자 열의 요약 통계스크립트는 Response Screening 플랫폼을 사용하여 p-Values를 구하면 훨씬 더 빨리 실행됩니다. 또한 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" )
);