こんにちは、みんな、
JSL を使用してコマンド <
私が苦労しているコードのセクションは次のとおりです。
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( Eval( YCols ) ),
In( :Simulated Y )
);
コードのそのセクションを実行すると、次のエラーが表示されます。スイッチアウトする列が見つかりません。次に、切り替える列を選択するウィンドウが表示されます。
report_of_interest は、Simulate コマンドを送信しているレポート ウィンドウです。 具体的には、レポートの見積り列である NumberColBox(8) に対してです。 NBSnum と RSnum は、実行するブートストラップ サンプルの数とランダム シード変数です。 問題は、Simulate( ) コマンドの Out( ) 内の列の名前です。 In( ) 列は、シミュレートされたデータ列に好きな名前を付けることができるので問題ありませんが、Out( ) オプションの列は、本当に名前を変更したい列でも何でもありません。 この場合、シミュレートされたデータをデータ テーブルに保存し、列の名前を「Simulated Y」に変更して、Simulate コマンドで必要に応じて In(:Simulated Y) として参照できるようにします。
コードの前半で、ユーザーはモデリングの応答列となる列を選択するように求められます。これは YCols です。多くの場合、プラットフォームで列を処理する場合は、単に Eval(YCols) として指定できます。それは問題なく受け入れられます。たとえば、次のようになります。
fm = avdt << Fit Model(
Y( Eval( YCols ) ),
Validation( :Validation ),
Effects( :Null Factor, Eval( XCols ) ),
Personality( "Generalized Regression" ),
Run( Fit( Estimation Method( Forward Selection ), Validation Method( Validation Column ) ) )
);
Y( ) 列に対して適合モデルを正しく実行します。 ただし、Simulate( ) コマンドは、列をスコープ付き列として参照させたいと考えています。たとえば、:My Column To Model のようにしたいと思います。
列の名前が「My Column To Model」であるとします。そのため、変数 YCols と Eval(YCols) は両方とも次の {"My Column To Model"} を返します。 シミュレート コマンドをレポートに送信するときは、次のようなスコープ付き列名が必要です。
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :My Column To Model ),
In( :Simulated Y )
);
問題は、モデル化している列が変更される可能性があるため、名前が変更されることです。列の名前を常に :YData のような固定名に変更したくないことです。 YCols のような変数を操作したいのですが、中置コロン演算子 (:) と YCols のような変数を操作して Simulate( ) コマンドの正しい列参照を取得する方法がわかりません。
Column(dt, name)、Column(dt, name)、Column(number)、Parse(":"||char(Column(avdt, Eval(YCols))))、Parse(":" として試してみました||Eval(YCols)[1])、どれも機能しません。 これらはすべて上記と同じエラーとなり、イン/アウトを入れ替える列を選択するための新しいウィンドウが開き、私が行おうとしている自動化が無効になります。
ご協力をよろしくお願いいたします。
ありがとう!、
DS