Meine Vermutung ist, dass die Funktionalität "out of the box" am nächsten kommt Cols> Preselect Role und das geskriptete Äquivalent << Rolle vorwählen .
Gibt es „gute“ Optionen zum Ausführen von JMP-Plattformen mit vorab ausgefüllten Optionen, wie z. B. Spaltenauswahlen? Im Folgenden sind zwei Optionen aufgeführt, die mir in den Sinn kamen.
Die erste Option besteht darin, das Plattformfenster zu „erstellen“, dann Spalten aus der Tabelle auszuwählen und die Schaltfläche zu drücken, um diese Spalten hinzuzufügen.
Die zweite Option besteht darin, zuerst die Plattform mit dem JSL-Skript auszuführen und dann << Analyse neu zu starten, um das Fenster „vorausgefüllt“ zu öffnen.
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);
Bearbeiten: Leichte Aktualisierungen des Beispielskripts
@David_Burnham Danke! Preselect-Rollen scheinen recht gut zu funktionieren, wenn nur Spaltenänderungen erforderlich sind (zum Glück sind in meinem Fall keine Änderungen an Optionen erforderlich):
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);