列表表达式仅计算第一个值我试图将其修复为JMP15首次发布无法正常运行的脚本。
我有一个List变量,其中包含感兴趣的列号。
ListofColumns= List(8,12,7,14);
我试图在一个窗口中针对列表中的每个列生成一组控制图:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(eval(ListofColumns)))
);
当我运行此代码时,它将为第8列生成适当的控制图,但没有其他控制图。
另一方面,如果手动输入列表,则会正确生成所有四个控制图:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(8,12,7,14))
);
我确定这曾经在控制图构建器之前与代码一起使用。 而且我也肯定我缺少一些简单的东西。 感谢任何帮助!
脚本编写回复:列表表达式仅计算第一个值我测试了您的代码回到JMP 11,发现代码可以正常工作。 以下是我认为的丑陋解决方法,希望有人有更好的解决方案
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/blood pressure.jmp" );
ListofColumns = List( 8, 4, 7, 5 );
Eval(
Parse(
"Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y( "
|| Substr(
Char( listofcolumns ),
2,
Length( Char( listofcolumns ) ) - 2
) || " )
));"
)
);
回复:列表表达式仅计算第一个值谢谢你的提示。 但是我最终采取了另一种方法,遍历列表中的每个值:
For( j = 1, j <= N Items(ListofColumns), j++, //step through the row numbers of interest
WinHandle3 << append (Control Chart( //append the control chart to existing window
Sample Label( :Lot_Number ), // using legacy Control Chart platform allows sample label use
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
ListofColumns[j],
Individual Measurement,
Moving Range
)));
); // close the for loop.
我只是将每个图表附加到现有窗口。 我还改用了旧版控制图平台,而不是(改进了的)控制图构建器,因为我想指定样本标签,而不是在X轴上指定无意义的序列号。 上面的脚本似乎有效。