こんにちは、
各モデルの基準線を保持するテーブルを作成しようとしています。 各基準線は、各モデルの期待収量です。 各モデルの収量の傾向を分析するときに、中央の表から基準線をインポートし、管理図または変動図に基準線をプロットできるスクリプトを作成する予定です。
これは収量テーブルのダミーデータです
| モデル | ウエハーID | 収率 |
| IC1 | あ | 50 |
| IC1 | B | 60 |
| IC1 | C | 70 |
| IC2 | E | 30 |
| IC2 | F | 40 |
| IC2 | G | 50 |
| IC2 | H | 60 |
| IC3 | R | 80 |
| IC3 | S | 90 |
| IC3 | T | 70 |
| IC3 | Z | 65 |
これは管理図にインポートする必要があるダミーの基準線テーブルです。
| モデル | 期待利回りの基準線 |
| IC1 | 50 |
| IC2 | 45 |
| IC3 | 70 |
プロットしようとしている管理図または変動図には、y 軸に「歩留まり」、x 軸に「WaferID」が表示されます。 したがって、「Yield」列の「列プロパティ」関数を使用して基準線を設定することはできません。 60 個以上の IC を調べなければならないので、手動で入力するよりも自動化できるヘルプを探しています。 これは私が達成しようとしていることのサンプルスナップショットです。 ご協力をいただければ幸いです。

別の道を行きました。 収量列をモデルごとに分割して、モデルごとに別の列を作成しました。 次に、[列プロパティ] > [仕様制限] > [ターゲット] を使用して、期待される値 (本質的にはターゲットですよね?) を入力します。 添付ファイルを参照してください。
JSL を JMP がサポートするさまざまな言語にロークライズすることは完全に可能ですが、ある程度の追加の労力が必要です。 これを行う方法の詳細については、「ディスカバリーペーパーによる@hecht_jmp 。 たとえば、(上記のコードのように) アウトライン ノードを操作していて、それらを名前で参照する場合、これはほぼ確実に失敗します。 一方、(上記のコードのように) 番号による参照は、レポートの構造が変更された場合 (たとえば、リリース間でレポートの内容が充実した場合) に失敗する可能性があります。
おそらく、support@jmp.com に電子メールを送信して、このスレッドを案内するのが最善です。
この JSL を中国製 JMP11 でテストしました。 ログに次のレポートを取得します。 それでも基準線は引けません。 説明してもらえますか?
Gマン
イアンさん、本当にありがとう。 これはうまくいきます。
以下のコードは以下を生成します。

すぐに始められるはずです。 「ヘルプ > 書籍 > スクリプト ガイド」および「ヘルプ > スクリプト インデックス」を使用すると、その動作を確認できます。 アウトライン ノードのタイトルの使用は現時点ではあまり堅牢ではありませんが、これは改善されるか、別の方法で実行される可能性があることに注意してください。
NamesDefaultToHere(1);
// Yield table
dt1 =
New Table( "Yield",
Add Rows( 11 ),
New Column( "Model",
Character,
"Nominal",
Set Values(
{"IC1", "IC1", "IC1", "IC2", "IC2", "IC2", "IC2", "IC3", "IC3", "IC3",
"IC3"}
)
),
New Column( "WaferID",
Character( 16 ),
"Nominal",
Set Values( {"A", "B", "C", "E", "F", "G", "H", "R", "S", "T", "Z"} )
),
New Column( "Yield",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 60, 70, 30, 40, 50, 60, 80, 90, 70, 65] )
)
);
// Reference table
dt2 =
New Table( "Reference",
Add Rows( 3 ),
New Column( "Model", Character, "Nominal", Set Values( {"IC1", "IC2", "IC3"} ) ),
New Column( "Value",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 40, 70] )
)
);
// Start here . . .
// Get the values in dt2 into lists for later
modelVal = Column(dt2, "Model") << getValues;
refVal = Column(dt2, "Value") << getValues;
// Control Charts
cc = dt1 << Control Chart(
Sample Label( :WaferID ),
Chart Col( :Yield, Individual Measurement ),
By( :Model )
);
// Loop over the control chart reports
for(r=1, r<=NItems(cc), r++,
ccRep = Report(cc[r]);
// Extract the level of 'Model' from the title of the outline node
title = ccRep[OutlineBox(1)] << getTitle;
delimPos = Munger(title, 1, "=");
level = Substr(title, delimPos+1, Length(title)-delimPos);
// Get the reference value and plot it using a graphics script
ref = refVal[Loc(modelVal, level)];
Eval(
Substitute(
Expr(ccRep[FrameBox(1)] << addGraphicsScript(PenColor("Blue"); HLine(TBD))),
Expr(TBD),
ref[1]
);
);
);