回复: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);