如何將變量傳遞到公式中?我正在使用以下語法。 我想修改公式的一部分,即估計的 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表變量