在變異性圖表上循環 - 引用列表成員而不是顯式使用其值的問題你好
我在變異性圖表上循環分析不同的參數,每個參數由一列表示。 列名存儲在列表中。 這是代碼片段
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] 作為列名。 如果我將它更改為列名的字符串(而不是通過索引引用它),它就可以正常工作。 我在上面的代碼中顯示了我認為錯誤發生的那一行。 你能幫我解決這個問題或指導我找到幫助文件嗎?

腳本回复:在變異性圖表上循環 - 引用列表成員而不是顯式使用其值的問題我認為圖表是在 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 )
)
)
) )
);