JMP > JSL > Come passare gli argomenti al componente aggiuntivo incluso nel mio script?Ciao comunità JMP,
Sono un utente accanito del componente aggiuntivo per il calcolo FDR di John Sall ( com.sas.sall.fdrpvalue.jmpaddin) nell'analisi di dati di biomarcatori di grandi dimensioni.
Sebbene l'immissione manuale dei dati in questo componente aggiuntivo sia semplice, non ho capito come passare gli argomenti dai miei script JSL a questo strumento.
So che devo utilizzare il comando Include ("[Componente aggiuntivo]") per abilitare l'uso del componente aggiuntivo nei miei script, ma come faccio a puntare a colonne specifiche generate dal mio script nel componente aggiuntivo?
Grazie per l'aiuto.
Migliore,
TS
Automazione e scriptingRi: JMP > JSL > Come passare gli argomenti al componente aggiuntivo incluso nel mio script?Ciao comunità JMP,
Innanzitutto, grazie a @jthi per una soluzione rapida ed efficace.
Solo per completezza, ho utilizzato un'opzione alternativa rozza in cui ho creato una funzione dagli elementi principali dello script FDR JSL (vedi sotto). Ho quindi chiamato questa funzione nel mio script.
IMPORTANTE: il codice principale utilizzato in questa funzione è stato creato da John Sall.
NamesDefaultToHere(1);
fdr = Function ({dtf, pvalCol},
pvalues = pvalCol<<GET values="">1,dialog("PValues must be between 0 and 1");throw());
index = rankIndex(pvalues); // removes missing values
n = nrow(index);
ordPValue = pvalues[index];
adjPValue = J(n,1,.);
for(i=1,i<=n,i++,
j = n-i+1;
ratio = n/(n-i+1);
adjPValue[j] = if (i==1,ordPValue[j],min(ratio*ordPValue[j],adjPValue[j+1]));
);
rowPValues = J(NRow(dtf),1,.);
rowPValues[index] = adjPValue;
sfx = pvalCol << get name ();
n_col_name = "FDR " || sfx;
dtf<<NEWCOLUMN></NEWCOLUMN></GET>
Migliore ,
TS
Ri: JMP > JSL > Come passare gli argomenti al componente aggiuntivo incluso nel mio script?Ho installato il componente aggiuntivo da Qui e guardò il codice. Molto probabilmente lo riscriverei e utilizzerei le funzioni, ma dovresti essere in grado di utilizzare la Nuova finestra creata dal componente aggiuntivo con qualcosa del genere:
Names Default To Here(1);
//This will immediately launch New Window with reference fdrDlg
Include("$ADDIN_HOME(com.sas.sall.fdrpvalue)/falseDiscoveryPValue.jsl");
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colListLabel << Set Items({"age", "sex"}); //Label Columns
colListPVal << Set Items({"height"}); //PValue Column
//ok button doesn't have direct reference, so we can look for it with XPath for example
ok_btn = (fdrDlg << XPath("//ButtonBox[@title='OK']"))[1];
//to launch we can press ok_btn
ok_btn << Click;