가변성 차트 반복 - 값을 명시적으로 사용하는 대신 목록 구성원을 참조하는 문제안녕
각각 열로 표시되는 다양한 매개변수를 분석하기 위해 가변성 차트를 반복하고 있습니다. 열 이름은 목록에 저장됩니다. 다음은 코드 조각입니다.
tetser = {a list of 100 column names in string format};<BR />For( i = 1, i <= 100 , i++,
Variability Chart(
Y( tester[i]),
Model( "Crossed" ),
X( :Operators, :Parts ),
Analysis Type( "Choose best analysis (EMS REML or Bayesian)" ),
Variability Analysis(
tester[i], <U><EM><STRONG>/* PROBLEM HAPPENS ON THIS LINE*/</STRONG></EM></U>
MSA Metadata( tester[i] ( Lower Tolerance( LTU[i] ), Upper Tolerance( UTU[i] ), Tolerance Range( UTU[i]-LTU[i] ) ) ),
Gauge RR( 6 ),
"Gauge R&R Report"n( 1 )
)
);문제는: 코드를 실행할 때 이 오류가 발생하는데 이는 Variability Analysis(...) 함수 내에서 열 이름으로 tetser[i]를 사용하고 있기 때문입니다. 인덱싱으로 참조하는 대신 열 이름의 문자열로 변경하면 제대로 작동합니다. 위의 코드에서 오류가 발생했다고 생각되는 줄을 보여주고 있습니다. 해결 방법을 알려 주시거나 도움말 파일로 안내해 주시겠습니까?

스크립팅Re: 가변성 차트 반복 - 값을 명시적으로 사용하는 대신 목록 구성원을 참조하는 데 문제가 있습니다.JMP가 tester[i]가 실제로 무엇인지 평가하려고 시도하기 전에 차트가 그려지고 있다고 생각합니다. 일단 가변성 차트 플랫폼은 그것을 시작한 스크립트 창에 대해 아무것도 알지 못합니다.에 설명된 대로 플랫폼을 시작하기 전에 표현식을 평가하도록 JMP에 지시하여 이를 방지할 수 있습니다. Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 식을 다른 식에 삽입합니다.
예를 들어:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Variability Data/2 Factors Crossed.jmp" );
cols = dt << get column references;
cols = cols[1]
for each({c, i}, cols,
Eval( Eval Expr(
Variability Chart(
Y( Expr( c ) ),
Model( "Crossed" ),
X( :Operator, :"part#"n ),
Analysis Type( "Choose best analysis (EMS REML or Bayesian)" ),
Variability Analysis(
Expr( cols[i] ), /* PROBLEM HAPPENS ON THIS LINE*/
MSA Metadata( tester[i] ( Lower Tolerance( LTU[i] ), Upper Tolerance( UTU[i] ), Tolerance Range( UTU[i]-LTU[i] ) ) ),
Gauge RR( 6 ),
"Gauge R&R Report"n( 1 )
)
)
) )
);