こんにちは、みなさん、
列名を工程能力プラットフォームに取得し、2つの正規混合分布をデフォルトとして設定させようとしています。
したがって、最初に列名を取得します
(例えば
)
コリスト={};
Collist=dt3 << Get Column Names("numeric");
次に、機能プラットフォームの列をループします。
nw=new window("capability analysis",
for(i=1, i<=n items(collist),i++,
dt3<<PROCESS capability=""></PROCESS>
<P> </P>
<P>ただし、ディストリビューション部分の選択が認識されないため、デフォルトで Normal が設定され、関心のある他のディストリビューションはチェックされません。</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/46513i65243B0FD8860575/shampton82_1-1666474952469.png" role="button" title="shampton82_1-1666474952469.png" alt="shampton82_1-1666474952469.png" /></span></SPAN></P>
<P> </P>
<P>ご意見ありがとうございます。</P>
<P> </P>
<P>スティーブ</P>
<P> </P>おそらくこれを処理する他の方法がありますが、ここでは 1 つのオプションを示します。 サンプルデータがなく、これを機能させるにはデバッグが必要だったため、コードを少し書き直す必要がありました。 これは、列の形式が非常に厳密であるように思われるため (おそらく & Dist()) が原因であると思われるため、Expr(NameExpr(AsColumn(Expr()))) を実行して、正しい見た目の列参照を取得しました。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
col_list = dt << Get Column Names(Continuous, String); // Note, these are as strings!
col_list = col_list[1::5];
nw = New Window("Capability Analysis",
vlb_collector = V List Box()
);
col_name = col_list[1];
create_capability_expr = Expr(
col_ref = Expr(NameExpr(AsColumn((Expr(col_name)))));
Eval(EvalExpr(
pc = dt << Process Capability(
Process Variables(Expr(col_ref) & Dist(Mixture of 2 Normals)),
Moving Range Method(Average of Moving Ranges),
Nonnormal Capability Method("Z-Score"n),
Johnson Distribution Fit Method(Maximum Likelihood),
Individual Detail Reports(1),
Capability Box Plots(0),
Goal Plot(0),
Capability Index Plot(0),
Process Performance Plot(0)
)
));
Eval(EvalExpr(
pc << {(Expr(col_ref) & Dist(Mixture of 2 Normals))<< Process Capability Analysis(Compare Distributions(1, <<FIT normal=""></FIT>

Eval Insert、Eval Expr、Parse、および Substitute を使用して、式を別の式に挿入します。 EvalExpr()) 部分を実行して、評価する前に式がどうなるかを確認できるため、デバッグにも大いに役立ちます。
編集:
列とその参照で何かをしなければならないときは、「常に」列名を文字列として開始し、Column()、As Column()、Name Expr()、Expr() ... で必要なことを行います。およびそれらのいくつかの組み合わせ。 これは最も堅牢な方法であり、デバッグが最も簡単で、ほとんどの場合機能し、開始点は常に同じです (文字列としての列の名前)。 これはあまりきれいに見えないかもしれませんが、JMP で列を参照しようとするときはあまり気にしません。通常、コードのきれいさは最大の問題ではないからです。
それはうまく機能し、コードとリンクされた投稿でいくつかの新しいトリックを学びました!助けてくれてありがとう!
スティーブ