回复:JSL 如何使用預定義的選擇/選項啟動 JMP 平台?我的猜測是最接近的“開箱即用”功能是列>預選角色和腳本等價物<< 預選角色.
JSL 如何啟動具有預定義選擇/選項的 JMP 平台?是否有任何「好的」選項可用於運行具有預先填充選項(例如列選擇)的 JMP 平台。以下是我想到的兩個選項。
第一個選項是「建置」平台窗口,然後從表格中選擇列並按按鈕新增這些列。
第二個選項是先使用 JSL 腳本執行平台,然後 << 重新啟動 Analysis 以開啟「預先填入」視窗。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
col_list = dt << get Column names(continuous, string);
wait(0);
//Option1
start = HP Time();
dt << Select Columns(col_list);
nw_eo = New window("Multivariate and Correlations", << Show Menu(0), << Show Toolbars(0),
Platform(dt, Multivariate())
, << Set Window Icon("ScatterplotMatrix")
);
xpath_path = "//ButtonBox[@title='Y, Columns']";
btn_ref = (nw_eo << XPath(xpath_path))[1];
btn_ref << Click(1);
dt << Clear Column Selection;
Show(HP Time()-start);
// Option2
start = HP Time();
ps = dt << Multivariate(
Y(Eval(col_list)),
Scatterplot Matrix(0),
invisible,
<< Relaunch Analysis,
<< Close Window
);
Show(HP Time()-start);
編輯:對範例腳本進行輕微更新
自動化和腳本編寫資料混合與清理視窗回复:JSL 如何使用預定義的選擇/選項啟動 JMP 平台?@大衛伯納姆謝謝! 如果只需要更改列,預選角色似乎工作得很好(幸運的是,在我的情況下不需要更改選項):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
col_list = dt << get Column names(continuous, string);
wait(0);
//Option3
start = HP Time();
old_roles = Associative Array();
For Each({col_name}, col_list,
old_roles[col_name] = Column(dt, col_name) << Get Role;
Column(dt, col_name) << Preselect Role("Y");
);
dt << Multivariate();
For Each({{col_name, role}}, old_roles,
If(role == "None",
role = "No Role";
);
Column(dt, col_name) << Preselect Role(role);
);
Show(HP Time()-start);