ユーザー入力でフィットモデルを取得しようとしています。Yが何であるかを知っていて、gen regを実行したいことを知っているので、フィットモデルでユーザーを支援したいとしましょう。 だから私は彼らにこれを与える。
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
);
クール、フィット=モデルダイアログ。 ただし、モーダルではないため、スクリプトは実行され続けます。 また、実行をプッシュすると、適合は削除されます。
私が本当に欲しいのは、ユーザーが自分のものを入力し、レポートが作成されたら次に進むことです。
このようなことをしようとしていますが、運がありません。
while(
obj = current report()[OutlineBox(1)] << Get Scriptable Object();
!(char(obj) == "Fit Generalized[]" & try(obj[1] << Get Prediction Formula; 1, 0));
,
wait(.3);
);
私本当に特にエフェクトは簡単に入力できないため、すべてのオプションを使用してUI全体を再構築する必要はありません。
再:ユーザー入力でフィットモデルを取得しようとしています。私はこのようなことをすることができますが、これを破る千の方法があるように感じ、より堅牢な何かを本当に望んでいます。
while(
obj = current report()[OutlineBox(1)] << Get Scriptable Object();
!(char(obj) == "Fit Generalized[]");
,
wait(.3);
);
btn_go_real = report(obj)[Buttonbox(1)];
report(obj)[1] << Append(Buttonbox("MyGo",
<<SET function=""></SET>再:ユーザー入力でフィットモデルを取得しようとしています。これは何か助けになりますか?これはモーダルウィンドウであり、出力表示ツリーをキャプチャできます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
nw = New Window( "example",
<<MODAL></MODAL>
再:ユーザーの入力でフィットモデルを取得しようとしています。そうではない、2番目のウィンドウのため
再:ユーザーの入力でフィットモデルを取得しようとしています。私は以前にこの種のアプローチを数回使用しました。
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
);
// The 'Run' button
runButton = Report(fit)[ButtonBox(9)];
// Append to the in-built action of the button
runButton << setScript(doSomething);
// The 'Terms' shown in 'dt2' reflect the user selections made in teh launch dialog
doSomething =
Expr(
Beep();
fit2 = fit << run;
dt2 = Report(fit2)[tableBox(5)] << makeCombinedDataTable;
dt2 << setName("Parameter Estimates")
);再:ユーザーの入力でフィットモデルを取得しようとしています。しゅう 、 @ian_jmp それに私を打ちました。実際、私のスクリプトは2つの機能を使用して、ダイアログを開いたままにし、2年前(2018年8月21日付近)に提供した実行ボタンにスクリプトを追加します。私のdoSomethingはモデルをデータテーブルに保存します。
この機会を利用して、便利なトリックとIanが採用しているダイアログを開いたままにしておくためにIanに再び感謝します。実際に彼のコードをカットアンドペーストして変更しました!
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Keep Dialog Open(1)
);
// Define a sample script
doSomething =
Expr(
Beep();
// For( i = 1, i <= N Table(), i++,
// Print( i, Data Table( i ) << getName )
// );
fit << Save to Data Table;
snames = dt << Get Table Script Names();
s = dt << get script( snames[N Items( snames )] );
Show( s );
);
// Assign the sample script to the button (JMP seems to prepend to the script that's already there?)
Report( fit )[Button Box( 9 )] << setScript( doSomething );
再:ユーザーの入力でフィットモデルを取得しようとしています。ありがとう @ian_jmp そしてしゅう 、Gen's Platformで[Go]を押した後、doSomethingで何かを実行したかったので、私はy'allの発言に基づいて、基本的に2回だけ実行しました。 また、ローカル変数がこのメソッドで何も壊さないようにするために、それらを機能化しました。
「My_Gen_Reg」関数が「doSomething」から値を返すようにしたい場合は、もう1つの質問に答えることができません。繰り返しますが、グローバルまたはヒアを使用しないようにします。
*編集*、私は機能しているように見える一時的な解決策を持っています。 私はまだそれが動作する方法が好きではありません。 ただし、UIを再作成するよりも間違いなく優れています。
Names default to here(1);
my_Gen_Reg = Function({dt},
{fit, pf_get},
fit = dt << Fit Model(
Y( :height ),
Effects(),
Center Polynomials( 0 ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
//Keep Dialog Open(1)
);
Report( fit )[Button Box( 9 )] << Set Function(
Function({self},
{fit_self, fit2},
fit_self = ((self << Top Parent)[OutlineBox(1)]<<GET scriptable="" object=""></GET>