JMP > JSL > 내 스크립트가 포함된 추가 기능에 인수를 전달하는 방법은 무엇입니까?안녕하세요 JMP 커뮤니티입니다.
저는 John Sall의 FDR 계산 추가 기능( com.sas.sall.fdrpvalue.jmpaddin) 대규모 바이오마커 데이터를 분석합니다.
이 추가 기능에서 데이터를 수동으로 입력하는 것은 간단하지만 JSL 스크립트에서 이 도구로 인수를 전달하는 방법을 알지 못했습니다.
내 스크립트에서 추가 기능을 사용하려면 포함("[추가 기능]") 명령을 사용해야 한다는 것을 알고 있지만 내 스크립트에 의해 생성된 특정 열을 추가 기능으로 지정하려면 어떻게 해야 합니까?
도와주셔서 감사합니다.
최상의,
TS
스크립팅Re: JMP > JSL > 내 스크립트가 포함된 Add-In에 인수를 전달하는 방법은 무엇입니까?에서 추가 기능을 설치했습니다. 여기 그리고 코드를 보았다. 나는 그것을 다시 작성하고 기능을 사용할 가능성이 높지만 다음과 같이 추가 기능이 생성하는 새 창을 사용할 수 있어야 합니다.
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;Re: JMP > JSL > 내 스크립트가 포함된 Add-In에 인수를 전달하는 방법은 무엇입니까?안녕하세요 JMP 커뮤니티입니다.
먼저 덕분에 @jthi 빠르고 효율적인 솔루션을 제공합니다.
완전성을 위해 FDR JSL 스크립트의 핵심 요소에서 기능을 생성하는 조잡한 대안 옵션을 사용했습니다(아래 참조). 그런 다음 스크립트에서 이 함수를 호출했습니다.
중요: 이 함수에 사용된 핵심 코드는 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>
최상의 ,
TS