JMP社群專家,我來自中國。
以下問題描述來自機器翻譯。請不要介意語法可能有點奇怪。
我想創建一個按鈕列來編寫一些腳本。
我主要使用以下方法來建立按鈕列:
cb = Expr(Col Box("Title"));
for each( {v, i}, list,
Insert Into( cb, button box("name", Script...) )
);我不可避免地在“腳本”中使用“v”、“I”等變量,但我發現這些變量總是作為變量而不是它們的實際值出現在“腳本”中,這導致我的腳本無法正常工作。
我嘗試使用Expr()、Eval()等函數將變數轉換為實際值,但無法得到想要的效果。
我使用 BigClass.jmp 範例資料模擬了類似的場景。
假設這些學生正在參加某種比賽,需要按年齡分組。我想建立一個包含學生姓名的按鈕列,然後按一下該按鈕以顯示其對應的群組。
範例腳本如下:
Names Default To Here( 1 );
aa_AgeGroup = [10 => "Age Group 1",
11 => "Age Group 1",
12 => "Age Group 1",
13 => "Age Group 1",
14 => "Age Group 2",
15 => "Age Group 2",
16 => "Age Group 2",
17 => "Age Group 2"];
dt = Open( "$sample_data/big class.jmp" );
list_name = dt:name << Get Values;
list_age = dt:age << Get Values;
cb_button = Expr( Col Box( "Name" ) );
fun = Function( {this, ver_age}, //
New Window( "Age Group", //
<<MODAL></MODAL><CODE class=" language-jsl">I hope my friends can teach me how to make variables stored in the button script as actual values, thank you.
非常感謝您的幫助,如此有效地解決了我的問題。
我也考慮利用 Expr()、EvalExpr() 和 Eval() 來解決這個問題,但我對這些函數的理解不足以解決問題。
您的解決方案不僅解決了手邊的問題,而且讓我對這些功能的整合有了更深入的了解。
再次感謝賈莫。
您必須將這些值評估到按鈕腳本中。只需將 Eval(EvalExpr()) 和幾個 Expr() 新增至腳本中即可解決問題(還有其他選項)
Names Default To Here(1);
aa_AgeGroup = [10 => "Age Group 1",
11 => "Age Group 1",
12 => "Age Group 1",
13 => "Age Group 1",
14 => "Age Group 2",
15 => "Age Group 2",
16 => "Age Group 2",
17 => "Age Group 2"];
dt = Open("$sample_data/big class.jmp");
list_name = dt:name << Get Values;
list_age = dt:age << Get Values;
cb_button = Expr(Col Box("Name"));
fun = Function({this, ver_age}, //
New Window("Age Group", //
<<MODAL></MODAL>