모든 사람,
포럼의 많은 예에도 불구하고 "Get As Matrix" 기능이 작동하지 않습니다. 트리 기능 덕분에 데이터("Schätzer" = "estimate")를 추출해야 하는 올바른 데이터 테이블을 찾았습니다. 아래 그림을 참조하십시오. NumberColBOX(8)의 네 행에 데이터가 필요합니다. "Get As Matrix"는 아무 것도 추출하지 않습니다!
내 스크립트는 다음과 같습니다.
"데이터 파일 불러오기"
....
drg = Fit Curve( Y( :Pmpp ), X( :time_ZUV ), Fit Biexponential 4P );
dgr_report = drg << 보고서;
dgr_report << 트리 구조 표시;
modell = dgr_report[OutlineBox(2)][TableBox(1)][StringColBox(1)] << Get();
cor_val = dgr_report[OutlineBox(2)][TableBox(1)][NumberColBox(6)] << Get();
SumFit = drg_report[OutlineBox(7)][TableBox(3)][NumberColBox(8)] << get As Matrix;
....
"디스플레이 모델, cor_val, SumFit"
"modell" 및 "cor_val"이라는 이름의 매개변수가 OutlineBox(2)에서 올바르게 추출되었습니다!
Tree structure of the expo decay fit엑스포 붕괴 적합의 트리 구조
도움을 주시면 감사하겠습니다!
미카엘
다음은 다음에 대해 작성된 스크립트 6_XPathFind.jsl의 주석입니다. JSL Companion, JMP 스크립팅 언어의 응용 프로그램, 2판 .
이것은 더 많은 것을 배울 수 있는 출발점이 될 수 있습니다.또한 이 JMP 블로그에서 XPath에 관한 여러 토론과 프레젠테이션을 검색하십시오.
/* XML -> eXstensible 마크업 언어
XPATH에 대해 자세히 알아볼 수 있는 여러 링크
https://en.wikipedia.org/wiki/XPath
https://www.w3.org/TR/xpath.html
https://www.w3.org/TR/xpath/
//섹션 6 - 추가 XPAth 구문
/* 다음을 기반으로 한 참고 및 예 https://www.tutorialspoint.com/xpath/xpath_quick_guide.htm
node-name 주어진 이름이 "nodename"인 모든 노드를 선택합니다. JMP의 노드 이름은 DisplayBox 클래스 이름입니다.
OutlineBox, TableBox, StringColBox, NumberColBox, TabBox, TabPageBox, AxisBox, FrameBox 등
/ 선택은 루트 노드에서 시작됩니다.
// 선택과 일치하는 현재 노드부터 선택 시작
. 현재 노드를 선택합니다.
.. 현재 노드의 부모를 선택합니다.
@ 속성 선택
TableBox 예 - 이름(클래스 이름)이 "TableBox"인 모든 노드(표시)를 선택합니다.
AxisBox/TextBox 예 - AxisBox의 자식인 모든 textBox 요소를 선택합니다.
//node-name 예 - //TableBox는 JMP 보고서의 위치에 상관없이 모든 TableBox 표시를 선택합니다.
----와일드카드----
* 모든 노드를 일치시키는 데 사용됩니다.
.컨텍스트에서 현재 노드를 일치시키는 데 사용됩니다.
@*모든 속성과 일치하는 데 사용
----술어---- 선택을 필터링/제한하기 위한 대괄호 안의 표현식
예 [n] [Last()] [@NumberColBoxItem > 20]
----가장 유용한 문자열 함수----
starts-with(string1, string2) 첫 번째 문자열이 두 번째 문자열로 시작하면 true를 반환합니다.
contains(string1, string2) 첫 번째 문자열에 두 번째 문자열이 포함된 경우 true를 반환합니다.
substring(문자열, 오프셋, 길이?) 문자열의 섹션을 반환합니다. 섹션은 제공된 길이까지 오프셋에서 시작합니다.
substring-before(string1, string2) string2가 처음 발생하기 전에 string1의 일부를 반환합니다.
substring-after(string1, string2) string2가 처음 발생한 후 string1의 일부를 반환합니다.
position() 노드의 위치를 제공합니다.
last() 현재 노드에 상대적인 마지막 노드를 선택합니다.
개수도 사용할 수 있지만 JMP는 결과 목록을 반환하고 JMP nitems(result)도 마찬가지로 쉽습니다.
//nodename 해당 이름을 가진 모든 상자를 찾는 것이 가장 유용할 것입니다.
F를 위해 곡선() 플랫폼에는 옵션이 있습니다. 매개변수 테이블 만들기 , 유용할 수 있습니다. iI는 Fit[n] 옵션(메시지)입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), Group( :formulation ) );
obj << Fit Logistic 4P;
ptbl = obj << (Fit[1] << Make Parameter Table);
"절대" 번호로 표시 상자에 주소를 지정할 수 있지만 계층적 컨텍스트에서 해당 상대 번호를 사용해야 하는 경우. 귀하의 예에서는 OutLineBox(7)에 하나의 TableBox와 세 개의 NumberColBoxes만 있으므로 JMP는 세 번째 TableBox를 찾지 못합니다.
다음은 매트릭스를 추출하는 네 가지 다르지만 동등한 방법입니다. 첫 번째는 절대 번호 매기기를 사용하고 두 번째와 세 번째는 상대 번호 매기기를 사용하며 마지막은 xpath 제목을 기반으로 NumberColBox를 식별합니다.
SumFit = drg_report[Number Col Box(8)] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][1][2] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][Table Box(1)][Number Col Box(1)] << Get As Matrix;
SumFit = (drg_report << xpath("//NumberColBox[NumberColBoxHeader ='Estimate']"))[1] << Get As Matrix;