如何将变量传递到公式中?我正在使用以下语法。 我想修改公式的一部分,即估计的 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
)))回复:如何将变量传递到公式中?列公式订阅其他列和表变量以侦听更改并在发生更改时重新评估。但不适用于其他 JSL 变量。 因此,按照它对您的作用,该公式可以看到系数变量并知道它应该订阅更改。 我认为其他建议是将变量替换为常量,因此公式不再知道它应该订阅某些内容。
回复:如何将变量传递到公式中?戴夫,我没能解决这个问题。 我诉诸了下面的方法,这似乎是我希望完成的工作。
谢谢,斯科特。回复:如何将变量传递到公式中?对我有用的是这个。 我得到了值“临时MAC系数" from the list from 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
回复:如何将变量传递到公式中?另一种方法是将公式转换为字符串表示形式,然后进行标准字符串替换,在分配列公式时将其转换回表达式:
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)) ));回复:如何将变量传递到公式中?这是处理 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
)
);回复:如何将变量传递到公式中?你需要这样的东西。 当您更改表变量时,该列会更新。
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) 标识需要通过求值进行替换的公式片段。评估表达式(...) 对 expr 标识的所有位进行求值,并返回仍需要求值的表达式。评估(...) 这样做。 (我更改了所有参数以使其完成某物与bigclass...不要使用我的! 我不熟悉 ARIMA 预测函数,也不熟悉它是否应该在这样的列公式中使用。 脚本索引示例不使用列公式。)
回复:如何将变量传递到公式中?编辑:重新阅读后,这可能不是答案。
通过脚本或红色三角形使用表变量。
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表变量