使用參數設置公式你好,
我正在嘗試在表的列中設置公式以及公式中的參數。 只需點擊鼠標即可輕鬆完成。 但我需要寫一個腳本。 下面是我寫的命令:
Column( 數據表( "field_data" ), "直徑預測公式" ) << 設置公式( Parameter({tuning = 1},eval(Name Expr(f11)) ));
我的公式存儲在“f11”中。 公式會改變,所以我只能使用變量來引用它,而不能寫出實際的公式。 當我運行此行時,公式會被正確計算,但是當我單擊該列來檢查公式時,它會顯示“ eval(名稱表達式(f11)) ”。 有什麼辦法可以把實際的公式放在這裡嗎? 請幫忙。 謝謝!!
回复:使用參數設置公式非常感謝伊恩!! 這有效! 
回复:使用參數設置公式Jim 展示瞭如何使用“Substitute()”構建公式表達式。 請注意,要查看所需表達式的外觀,您始終可以手動構建公式列,並向結果列發送“getScript”或“getFormula”消息。 因此,您可以以吉姆的示例為基礎來獲取:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
:column 6 << setFormula( Parameter( {b0 = initialValueTBD}, :weight * (__f11__ * b0) ) ),
),
Expr(initialValueTBD), 2,
Expr( __f11__ ), evalexpr(f11)
)
);
回复:使用參數設置公式謝謝特克斯尼爾森。 抱歉,我應該告訴您我的分析的下一步,因為這對我來說以我之前提到的方式定義參數很重要。
我正在使用帶有公式(和參數)的列執行非線性回歸。 現在,如果我按照您在代碼中定義參數的方式定義參數,那麼非線性回歸將不會將“調整”視為必須優化的參數。 它將把它視為固定值。所以,它不會給我“調整”的優化值。 另一方面,如果我將“調整”定義為參數,那麼非線性回歸將為我提供參數“調整”的值,該值最小化平方和。
因此,請告訴我是否有任何方法可以在同一列中定義參數“調整”,以便非線性回歸將其視為必須優化的參數而不是固定值。 謝謝!!
抱歉之前沒說清楚。
回复:使用參數設置公式參數只是將內存變量值設置到公式中,只需將該代碼放入公式中即可對其進行模擬。查看我對公式的新變體
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height * tuning);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
),
Expr( __f11__ ), evalexpr(f11)
)
);回复:使用參數設置公式謝謝特克斯尼爾森,我理解你的代碼。 但我的問題還有一件事。 我還需要在公式中設置一個參數。 讓我借助您提供的示例代碼進行解釋。 您已成功分配第 6 列中的公式。 現在,在此之後,我還需要一個腳本來執行以下操作,可以通過單擊鼠標來完成,如下所示:
1) 右鍵單擊第 6 列。 轉到“公式..”
2)從下拉列表中選擇“參數”(靠近左下角)
3)點擊“新參數”
4) 為參數指定名稱和值
5)點擊確定
請告訴我是否可以做到這一點。 謝謝!!
回复:使用參數設置公式您需要將評估強制納入公式中,我發現最簡單的方法是使用 Substitute()
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = ":Height";
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula( :weight * __f11__ )
),
Expr( __f11__ ), Parse( f11 )
)
);