変数を数式に渡すにはどうすればよいですか?以下の構文を使用しています。 MA係数の推定値である式の一部を修正したいと思います。
この場合、 MA係数は0.144654220611782です。
リストの使用を含む、これまでの数多くの試みは失敗に終わりました。
係数値 (0.144654220611782) を「変数」に代入し、その「変数」を式で使用するにはどうすればよいでしょうか? つまり、数式構文を実行する前に係数値を割り当て、その値を適切な方法で数式に渡します。
dt << New Column( "Yt Forecast1", Numeric, "Continuous", Format( "Best", 12 ),
Formula(
ARIMA Forecast(
:Yt,
50,
ARIMA( 0, 1, 1, No Intercept( 1 ) ),
{MA Coefficients( {0.144654220611782} )},
Row() - 50,
Row() - 50
)))Re: 数式に変数を渡すにはどうすればよいですか?列式は、他の列およびテーブル変数をサブスクライブして、変更をリッスンし、変更が発生したときに再評価します。ただし、他の JSL 変数には適用されません。 したがって、それがどのように機能するかというと、数式は次のことを確認できます。係数変数であり、変更をサブスクライブする必要があることを認識しています。 他の提案は変数を定数に置き換えているため、式は何かをサブスクライブする必要があることを認識できなくなっていると思います。
Re: 数式に変数を渡すにはどうすればよいですか?デイブ、私はこれをうまく解決できませんでした。 私は、私がやり遂げたいと思っている仕事と思われる以下に頼りました。
ありがとう、スコット。Re: 数式に変数を渡すにはどうすればよいですか?私にとってうまくいったのはこれです。 値を取得しました」 tempMACeff " リストから lstModel = ts << Get Models; (ts は時系列分析)
列の式は tempMACoeff の新しい値を受け入れ、更新されます...
col = dt << New Column( "Yt-Forecast", Numeric);
dt << set Table Variable( "coef", tempMACoeff );
col << Set Formula( Eval(
Eval Expr(
ARIMA Forecast(
:Yt,
50,
ARIMA( 0, 1, 1, No Intercept( 1 ) ),
{MA Coefficients( {Expr( :coef )} )},//
Row() - 50,
Row() - 50
)
)
)); // set the formula
Re: 数式に変数を渡すにはどうすればよいですか?もう 1 つの方法は、式を文字列表現に変換してから標準の文字列置換を実行し、列式を割り当てるときにそれを式に変換し直すことです。
strFml = Char(Expr(
ARIMA Forecast(
:Yt,
50,
ARIMA( 0, 1, 1, No Intercept( 1 ) ),
{MA Coefficients( {_coeff_} )},
Row() - 50,
Row() - 50
)
));;
coeffValue = 0.144;
SubstituteInto("_coeff_",coeffValue);
dt << New Column("Y Forecast", numeric, Set Formula( Eval(Parse(strFml)) ));Re: 数式に変数を渡すにはどうすればよいですか?ここでは、Craige が提供したのと同じソリューションを処理する少し異なる方法を示します。唯一の違いは、このバージョンでは Coef 値が式にハードコードされ、テーブル変数が必要ないことです。
Names Default To Here( 1 );
dt = Current Data Table();
coef = 99.3;
Eval(
Substitute(
Expr(
New Table( "the table",
Add Rows( 3 ),
New Table Variable( "coef", 99.3 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( __coef__ ),
Set Selected
)
)
),
Expr( __coef__ ), coef
)
);Re: 数式に変数を渡すにはどうすればよいですか?このようなものが必要です。 テーブル変数を変更すると、列が更新されます。
Eval(
Eval Expr(
ARIMA Forecast(
:age,
40,
ARIMA( 0, 1, 1, No Intercept( 1 ) ),
{MA Coefficients( {Expr( :coef )} )},
Row() - 9,
Row() - 9
)
)
)
同じテーブル変数のアイデアを使用して、 eval( eval expr( ... expr(:coef) ... ) )動作します。式(:coef) は、評価による置換が必要な数式のスニペットを識別します。 evaexpr (...) expr で識別されたすべてのビットの評価を実行し、まだ評価が必要な式を返します。評価(...) そうします。 (これを実現するためにすべてのパラメータを変更しました何かbigclass では...私のものは使用しないでください。 ARIMA 予測関数についてはよくわかりません。また、この関数をこのような列数式で使用する必要があるかどうかもわかりません。 スクリプトインデックスの例では列式を使用していません。)
Re: 数式に変数を渡すにはどうすればよいですか?追記:読み直してみると、これは答えではないかもしれません。
スクリプトを使用して、または赤い三角形からテーブル変数を使用します。
New Table( "Untitled 46",
Add Rows( 3 ),
New Table Variable( "coef", 99.3 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :coef ),
Set Selected
)
)
Table VariableTable Variableテーブル変数