Ri: JSL come avviare piattaforme JMP con selezioni/opzioni predefinite?La mia ipotesi è che la funzionalità "out of the box" più vicina sia Cols> Preseleziona Ruolo e l'equivalente con script << Preseleziona ruolo .
JSL come avviare le piattaforme JMP con selezioni/opzioni predefinite?Esistono opzioni "buone" per l'esecuzione di piattaforme JMP con opzioni precompilate, come le selezioni di colonne. Di seguito sono riportate due opzioni che mi sono venute in mente.
La prima opzione è "costruire" la finestra della piattaforma, quindi selezionare le colonne dalla tabella e premere il pulsante per aggiungere tali colonne.
La seconda opzione consiste nell'eseguire prima la piattaforma con lo script JSL e poi << Riavviare l'analisi per aprire la finestra "precompilata".
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);
Modifica: lievi aggiornamenti allo script di esempio
Automazione e scriptingCombinazione e pulizia dei datifinestreRi: JSL come avviare piattaforme JMP con selezioni/opzioni predefinite?@David_Burnham Grazie! I ruoli di preselezione sembrano funzionare abbastanza bene se sono necessarie solo le modifiche alle colonne (fortunatamente, nel mio caso non sono necessarie modifiche alle opzioni):
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);