このコードが機能するのは、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」が何になるかを想定できないため、汎用的なスクリプトにする必要があることから、2番目のバージョンと同様の方法で記述することです。このようなことを実現する方法はありますか?
何をしようとしているのですか?複数の列に対して一元配置分散分析を実行し、それらの分析結果をフィットグループに収集し、Whereオプションを適用してデータを単一のグループに制限し、アウトラインボックスを閉じるということでしょうか?また、使用しているJMPのバージョンは何ですか?
複数のYパラメータと複数のByパラメータに対して一元配置分析を実行しようとしていますが、作成されるFitGroupsをまずYパラメータでグループ化し、次にByパラメータでグループ化したいと考えています。そのため、Yパラメータ名とByパラメータ名の両方を変数に格納する必要があります。
私はJMP 19を使用しています。
もうすでに感謝しています。
最終的にどのようなレイアウトを希望されますか?データを積み重ねてから「Fit Y by X」を実行してみましたか?