这段代码之所以能运行,是因为我在 Where(...) 子句中显式地写入了 ":WaferID":
= Associative Array(byPara) << GetKeys();
New Window("Test", vlb = V List Box(
dt << Fit Group(
For(iC = 1, iC <= NItems(colParaList), iC++,
Oneway(Y(Eval(colParaList[iC])), X(splitPara)) ),
<< {Arrange in Rows(1)},
Where(:WaferID == "001"),
SendToReport( Dispatch( {}, "Fit Group WaferID=001", OutlineBox, {Close( 1 )} ) ) ))
);// Example Parameters<BR />colParaList = {Column(dt, "Para1"), Column(dt, "Para2"), Column(dt, "Para3")};
splitPara = Column(dt, "Site");
byPara = Column(dt, "WaferID");<BR /><CODE class="language-jsl"><BR />byParaValues
这段代码不起作用,因为我使用的是 Eval(byPara)。
// Example Parameters<BR />colParaList = {Column(dt, "Para1"), Column(dt, "Para2"), Column(dt, "Para3")};
splitPara = Column(dt, "Site");
byPara = Column(dt, "WaferID");
byParaValues = Associative Array(byPara) << GetKeys();<BR />New Window("Test", vlb = V List Box(<BR /> dt << Fit Group(<BR /> For(iC = 1, iC <= NItems(colParaList), iC++, <BR /> Oneway(Y(Eval(colParaList[iC])), X(splitPara)) ), <BR /> << {Arrange in Rows(1)}, <BR /> Where(Eval(byPara) == "001"), <BR /> SendToReport( Dispatch( {}, "Fit Group" || Char(Eval(byPara) << GetName()) || "=" || Char(byParaValues[1]), OutlineBox, {Close( 1 )} ) ) )<BR /> )<BR />);
为什么其中一个有效,而另一个无效?根据我的经验,如果我将“Eval(byPara)”替换为“byPara”,它也无法正常工作。
我的目标是编写出与第二个版本类似的代码,因为脚本无法预知“byPara”的值,所以它应该是通用的。有什么方法可以实现这一点吗?
你想做什么?是对几列数据进行单因素方差分析,将分析结果汇总到“拟合组”中,然后应用“范围”命令将数据限制到单个组中,最后关闭一个大纲框吗?另外,你使用的是哪个版本的 JMP?
我尝试对多个 Y 参数和多个 By 参数进行单因素方差分析,但我希望创建的拟合组首先按 Y 参数分组,然后再按 By 参数分组。因此,Y 参数和 By 参数的名称都需要写入变量。
我使用的是 JMP 19。
谢谢。
你最终想要的布局是什么样的?你试过把数据堆叠起来,然后运行“拟合 Y 轴 X 轴”函数吗?