JMP > JSL > ¿Cómo pasar argumentos al complemento incluido en mi propio script?Hola comunidad JMP,
Soy un ávido usuario del complemento de cálculo FDR de John Sall ( com.sas.sall.fdrpvalue.jmpaddin) en el análisis de grandes datos de biomarcadores.
Si bien la entrada manual de datos en este complemento es sencilla, no he descubierto cómo pasar argumentos de mis scripts JSL a esta herramienta.
Sé que tengo que usar el comando Incluir ("[Complemento]") para habilitar el uso del complemento en mis secuencias de comandos, pero ¿cómo señalo columnas específicas generadas por mi secuencia de comandos en el complemento?
Gracias por tu ayuda.
Mejor,
TS
secuencias de comandosRe: JMP > JSL > ¿Cómo pasar argumentos al complemento incluido en mi propio script?Hola comunidad JMP,
Primero, gracias a @jthi para una solución rápida y eficaz.
Solo para completar, utilicé una opción alternativa cruda en la que creé una función a partir de los elementos centrales del script FDR JSL (ver más abajo). Luego llamé a esta función en mi script.
IMPORTANTE: el código central utilizado en esta función fue creado por 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>
Mejor ,
TS
Re: JMP > JSL > ¿Cómo pasar argumentos al complemento incluido en mi propio script?Instalé el complemento de aquí y miró el código. Lo más probable es que lo reescriba y use funciones, pero debería poder usar la Nueva ventana que crea el complemento con algo como esto:
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;