Fit Group への JSL メッセージFit Group に送信されたメッセージがグループ内のすべての Fit Model インスタンスに送信されるように JSL を設計するのはどれほど難しいでしょうか?
たとえば、あてはめグループで [スクリプトをデータ テーブルに保存] を使用し、コードのブロックを 1 つ追加して、そのあてはめグループ内のすべてのあてはめモデルに同じ分析を実行したい場合、それを行うことはできますか? Fit Model 呼び出しを検索して置換し、各モデルのコードのコピーを挿入できることはわかっています。
うまくいけば、これは理にかなっています。
Re: Fit Group への JSL メッセージこれは素晴らしいニュースです。 そしてJMP15は大丈夫です。 この場合、JSL には十分な柔軟性があるため、ここで既に提供したコードを使用して作業を完了できます。 これを機能させる方法を理解するために、少し時間を費やす必要がありました。 15 でよりシンプルなアプローチが得られるとよいでしょう。
Re: Fit Group への JSL メッセージありがとう、マイケル。 それは理にかなっている。
リクエストを記録し、上記の欠陥 ID を入力しました。
とも話した@John_Sall彼は理解し、JMP 15 でこのようなものに対応できるかもしれないと考えたと言いました。
Re: Fit Group への JSL メッセージジェフ、
現在、私はこれに対して創造的なアプローチを取っています。 次のコードで、"script" と "multicomp" は、コードの前半で定義した式です。 "script" はフィット グループの呼び出しです。 「multicomp」は、Multiple Comparisons(...) を指示する式です。
newscript = Expr(Fit Group());
For(i=1,i<=N Arg(script),i++,
// look for Fit Model calls
If( Char( Head( Arg(script,i) ) ) == "Fit Model()",
workingarg = Expr(Fit Model());
// add multicomp request to Run argument, pass all other arguments through
For(k=1,k<=N Arg(Arg(script,i)),k++,
workingarglevel2 = Arg( Arg(script,i), k );
If( Char( Head( workingarglevel2 ) ) == "Run",
Insert Into(workingarglevel2, Name Expr(multicomp));
);
Insert Into(workingarg, Name Expr(workingarglevel2));
);
// make assignment function to store each fit model into list
assignment = Expr(Assign());
Insert Into(assignment, Substitute(Expr(fm[__i__]), Expr(__i__), i));
Insert Into(assignment, Name Expr(workingarg));
Insert Into(newscript, Name Expr(assignment));
,
// if not Fit Model, we just pass the argument through to Fit Group
Insert Into(newscript, Arg(script,i))
);
);script << Multiple Comparisons(...) を単純に実行できれば、はるかに簡単になります。 これは、コードで参照されているリスト「fm」をどのように定義するかというパズルをまだ残しています。これは、Fit Group の各フィットのレポートを取得して、そこから情報を抽出できるようにするために必要です。複数の比較(...) ですが、それはおそらく別の日のパズルです。
グループのすべてのメンバーに適用されない引数を Fit Group にブロードキャストしようとすると (たとえば、Gaussian Process に多重比較(...) がないことがわかっている場合)、JMP は要求を単に破棄できますか?うまくいかない? Try(...) の仕組みのようなものですか? Send(msg, fg) を実行すると、"fg" の各要素を反復処理して Try(Send(msg, elements[i])) を実行するだけでよいのとほとんど同じです。
うまくいけば、この明確化がより理にかなっています。
マイケル
Re: Fit Group への JSL メッセージ「同じ分析を行うための単一のコードブロック」の例を挙げていただけますか? 同じモデルを各応答に当てはめたいということですか?
1 つの問題は、Fit Group() が Fit Model だけでなく、複数の近似タイプを持つことができることです。 例えば:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Fit Group(
Fit Model(
Y( :ABRASION ),
Effects(
:SILICA & RS,
:SILANE & RS,
:SULFUR & RS,
:SILICA * :SILICA,
:SILICA * :SILANE,
:SILANE * :SILANE,
:SILICA * :SULFUR,
:SILANE * :SULFUR,
:SULFUR * :SULFUR
),
Personality( Standard Least Squares ),
Emphasis( Minimal Report ),
Run()
),
Gaussian Process(
Y( :HARDNESS ),
X( :SILICA, :SILANE, :SULFUR ),
Set Correlation Function( "Cubic" )
)
);