こんにちは、みんな、
<
特定の分析を実行する自動スクリプトがあり、このスクリプトでは、開いているレポートのリストを取得して、report_of_interest を取得します。以下の JSL を参照してください。
report_windows = Get Window List( "Report" );
report_of_interest = Empty();
For Each( {report_windows}, report_windows,
outline_title = Try( report_windows[Outline Box( 1 )] << Get Title, "" );
If( Starts With( outline_title, "Generalized " ),
report_of_interest = report_windows;
Break();
);
);report_of_interest は、レポートの DisplayBox[HeadBox] への参照です。 この参照を使用すると、コマンドを送信して、レポート内の対象の列 (パラメーター推定列など) のシミュレーションを実行するなどの操作を行うことができます。
report_of_interest[Number Col Box( 8 )] << Simulate(
2500,
Random Seed(.),
Out( :ColOut ),
In( :ColIn )
);
ただし、コマンド <
report_of_interest << (Fit[1] << Save Simulation Formula)
ログ ウィンドウに次のエラーが表示されます。
オブジェクト「HeadBox」はメッセージ「Send」を認識しません。おそらくこれらのいずれかを意味します: <<<<<<<<<<<< <ウィンドウ ID の設定 <<ウィンドウのサイズ設定 <<ウィンドウの移動 <<ウィンドウの表示 <<ウィンドウを閉じる <<ウィンドウ タイトルの設定 <<ウィンドウ アイコンの設定 <<メイン ウィンドウの設定 <<印刷ヘッダーの設定 <<マウス ドラッグ <<最小サイズの設定 < <幅の設定<<有効。
アウトラインのタイトル、上記の変数outline_titleを使用しようとすると、ログに次のエラーが表示されます。
Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します、outline_title << /*###*/(Fit[1] << Save Simulation Formula) /*###*/
私が理解できないのは、Scripting Index ヘルプの例と私の JSL コードの参照の違いです。 Scripting Index ヘルプの最初の例は次のとおりです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
fm = dt << Fit Model(
Y( :Y ),
Effects( :Age, :Gender, :BMI, :BP, :Total Cholesterol, :LDL, :HDL, :TCH, :LTG, :Glucose ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Run( Fit( Estimation Method( Lasso( Adaptive ) ), Validation Method( KFold, 5 ) ) )
);
fm << (fit[1] << Save Simulation Formula);
fm は、Fit Generalized[] を参照する変数です。 スクリプト インデックスの例では、すべてこの参照を使用してシミュレーション列をデータ テーブルに保存できます。
私が見てわかる 1 つの大きな違いは、これらの例ではすべて、サブコマンド Run(Fit()) を使用して Fit Model () コマンドをデータ テーブルに送信できることです。 私の JSL コードではそれを行うことはできません。JSL コードはより一般化されており、Y、Response、X、Factors の同じ列で常に実行できるわけではありません。
私のコード内の類似の JSL は次のとおりです。
avdt << Fit Model(
Y( Eval( YCols ) ),
Validation( :Validation ),
Personality( "Generalized Regression" )
);
使用しているデータ テーブルに応じて効果が変わる可能性があるため、効果はリストされていないことに注意してください。 その前に、どの列が応答列であるかを示すように求めるコードのセクションがあります。したがって、JSCL コードにはその列への参照があるため、Fit Model() に Y(Eval(ycols)) を含めることができます。
残念ながら、fm = avdt << Fit Model() のようなことはできず、そのように参照することはできません。すべてのエフェクトを入力して GenReg プラットフォーム ウィンドウで [実行] をクリックすると、fm は削除されたオブジェクトであるというエラーを返すからです。参照[]。 実際、Scripting Index ヘルプの例にある Run() を含む行をコメント アウトして実行し、[モデルのフィット] ダイアログで [実行] をクリックすると、サンプル コードではシミュレーション列がデータ テーブルに保存されません。
長い投稿で申し訳ありませんが、私が抱えている問題の背後にある背景を説明する必要があると感じました。 <
ありがとう!、
DS