트리 구조의 객체를 사용하여 플롯 출력에서 데이터 가져 오기에 대한 질문<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, 사양 제한의 다양한 시나리오에 대한 낙진 데이터를 가져오고 싶습니다. 이전에 다른 스크립트에서 열을 반복하면서 각 열을 목록으로 가져 왔으며 select_where () 데이터가 스펙 제한보다 위 / 아래이지만 네이티브 JMP 정보를 사용하고 싶었습니다.
한계가 존재할 때 JMP의 유통 플랫폼은 cpk 분석과 낙진을 보여줄 것입니다. 트리 구조를 살펴보면 낙진 정보가 "numbercolbox (4)"라는 개체 / 목록에 나타납니다. 나는 낙진 데이터를 얻는 방법을 알아 냈고, 각 한계 세트에 대한 스펙 한계 및 채우기 분산을 채울 수 있지만이 솔루션의 신뢰성을 알고 싶습니다. 예를 들어 다른 사람이 다른 환경 설정 집합을 가지고 있다면 numbercolbox (4)는 항상 낙진 데이터를 가져 오게됩니까?
나는 이것에 대한 대안이 xpaths라고 생각하지만, 이것에 대한 많은 정보가 없다. 괜찮은 해결책이고 누군가 문서가 있으면 알려 주시기 바랍니다.
첨부 된 스크립트는 내가 원하는 것을 수행하고 나를 위해 작동합니다. 당신은 그것을 실행할 수 있고 내가 말하는 것을 볼 수 있습니다. 샘플 데이터를 사용합니다.
JMP 출력 (플롯 등)에서 트리 구조를 보려면 기본적으로 창을 원래 크기보다 크게 만든 다음 Ctrl 키를 누른 채 오른쪽 맨 아래 부분을 마우스 오른쪽 단추로 클릭하고 트리 구조 표시를 선택합니다. 아래를 참조하십시오.
감사,
-마이크

다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문xpath 코드를 변경하여 (적어도 나를 위해) 간단하게 만들었고,이 코드는 내가 필요로하는 것을 위해 작동합니다. 그러나, 나는 아직도 이상한 코드가 실제로 작동하지 않는 이유에 대해 궁금해한다. 좀더 일반적인 사용 구조 / 코드가 유용 할 것이기 때문이다.
감사,
마이크
이름은 기본적으로 여기에있다. ( 1 ) ;
testVar = 0 ;
testVar = 1 ; // 후속 실행에 대한 주석 처리
만약 ( testVar ,
열다 ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist = 분포 (
스택 ( 1 ) ,
연속 배포 (
기둥 ( : NPN1 ) ,
요약 통계 사용자 정의 (
견고한 평균 ( 1 ) ,
견고한 표준 개발 ( 1 )
)
) ,
연속 배포 (
기둥 ( : PNP1 ) ,
요약 통계 사용자 정의 (
견고한 평균 ( 1 ) ,
견고한 표준 개발 ( 1 )
)
) ,
연속 배포 (
기둥 ( : PNP2 ) ,
요약 통계 사용자 정의 (
견고한 평균 ( 1 ) ,
견고한 표준 개발 ( 1 )
)
)
) ;
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = '요약 통계']" ) ;
...에 대한 ( 나는 = 1 , 나는 <= 니 넴스 ( reportObj ) , 나는 ++, 보여 주다 ( reportObj [ 나는 ] << 제목을 얻다. ) ; ) ;
strList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = '요약 통계]] // StringColBox" ) ;
// for (i = 1, i <= nitems (reportObj), i ++, show (reportObj << get); strList = reportObj << get;);
보여 주다 ( reportObj [ 1 ] << 도망 ) ;
strList = reportObj [ 1 ] << 도망 ;
시험 ( rMnIndx = 위치 ( strList , "강인한 의미" ) , rMnIndx = - 1 ) ;
시험 ( 러시아 표준시 = 위치 ( strList , "견고한 표준 편차" ) , 러시아 표준시 = - 1 ) ;
statList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = '요약 통계]] // NumberColBox" ) ;
// for (i = 1, i <= nitems (reportObj), i ++, show (reportObj << get); statList = reportObj << get;);
보여 주다 ( reportObj [ 1 ] << 도망 ) ;
statList = reportObj [ 1 ] << 도망 ;
만약 ( rMnIndx > 0 & 러시아 표준시 > 0 ,
robustMean = statList [ rMnIndx ] ;
robustStd = statList [ 러시아 표준시 ] ;
,
robustMean = - 999 ;
robustStd = - 999 ;
) ;
보여 주다 ( robustMean , robustStd ) ;
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문안녕하세요 필립,
마침내 xpath 코드를 확인하려고했는데 문제가 있습니다. 포스터를 참고로 사용했습니다. 내가 뭘 잘못하고 있는지 알아낼 수 있니?
또한, 전에 본 것 같지만 기억하지 못합니다 ... 이것은 ' . '에서' list_testSS.Key "변수 이름은?
C에서 구조를 연상케하는 것 같지만 그것에 대한 jsl 문서를 찾을 수 없습니다. 내 코드에서 올바르게 설정되었는지 잘 모르겠습니다.
감사,
마이크
이름은 기본적으로 여기에있다. ( 1 ) ;
열다 ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist =
분포 (
스택 ( 1 ) ,
연속 배포 (
기둥 ( : NPN1 ) ,
가로 레이아웃 ( 1 ) ,
수직선 ( 0 ) ,
왼쪽에 도끼 ( 1 ) ,
요약 통계 사용자 정의 (
표준 편차 평균 ( 0 ) ,
평균 평균 신뢰 구간 ( 0 ) ,
낮은 평균 신뢰 간격 ( 0 ) ,
N 없음 ( 1 ) ,
범위 ( 1 ) ,
견고한 평균 ( 1 ) ,
견고한 표준 개발 ( 1 )
)
)
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = '요약 통계]] / ancestor :: OutlineBox [last ()]" ) ;
list_groupName = reportObj << GetTitle ;
list_testSS.Key = ( reportObj << xpath ( "// * [contains (text (), '요약 통계')] / following-sibling :: * // StringColBox" )) << 도망 ;
list_testSS.Val = ( reportObj << xpath ( "// * [contains (text (), '요약 통계')] / following-sibling :: * // NumberColBox" )) << 도망 ;
list_levelString = ( reportObj << xpath ( "// OutlineBox [text () = 'Long Term Sigma'] // StringColBoxHeader [text () = 'Capability'] / .." )) << 도망 ;
list_levelMeans = ( reportObj << xpath ( "// OutlineBox [text () = 'Long Term Sigma'] // NumberColBoxHeader [text () = 'Index'] / .." )) << 도망 ;
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문xpath의 한 가지 분명한 이점은 JMP Report 창에 여러 개의 displaybox 객체가있는 경우입니다. 예를 들어, 분석을 한 결과 결국
xpath를 사용하여 100 Outlineboxes를 사용하면 다음 작업을 수행 할 수 있습니다.
rpt << xpath ( "// OutlineBox")
모든 개요 상자에 대한 참조 목록이 리턴됩니다. (여기서 rpt는 JMP 보고서 창)
기존의 디스플레이 박스 스크립팅을 사용하면 생성 된 문자 수를 먼저 알아야하고, 1에서 N까지 반복하고 색인을 통해 각 윤곽 상자에 액세스해야합니다. 시퀀스가 명확하지 않은 경우 인덱싱이 특히 문제가 될 수 있습니다 (예 : 중첩 된 윤곽선 상자). 이것은 더 많은 코딩 단계 일 수 있습니다.
속도면에서 볼 때, 특히 큰 그룹에서는 XPath가 훨씬 더 빨리 실행된다는 점과 눈에 띄는 차이가있었습니다. 나는 그것이 당신이 기술하는 "단일 샷"시나리오와 차이가 있다고 생각하지 않지만, 공식적인 타이밍 연구가 수행되어야 할 것입니다.
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문고마워, 나는 그런 문서를 잠시 찾고 있었다. 나는 그걸로 조금 놀고 그것이 어떻게되는지 보게 될 것이다. 똑바로 보일뿐 아니라 언어에 따라 달라 지므로 필자가 필요로하는 것은 괜찮을 것입니다.
왜 xpath가 화면 트리 스크립팅보다 효율적입니까? 보다 효율적인 코딩은 정보를 더 빠르게 얻는 것입니까? 이 질문의 목적을 위해, 분배 그림 상자와 같이 반환되는 객체가 하나 뿐이며 이름이나 번호를 알고 있다고 가정합시다. 이 작업을 100 번 또는 1000 번 수행하면 다른 작업보다 눈에 띄게 빠른 작업이 수행됩니까? 보고서를 생성하기 전에 (개체를 추출하기 전에) 실행 시간이 어디에있는 것 같습니다.
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문올해 컨퍼런스에서 XPath에 대한 훌륭한 포스터가있었습니다.
https://community.jmp.com/docs/DOC-8116
그들은 JMPs 구조로 몇 가지 실생활 예제를 거칩니다.
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문감사! 지금 나에게 분명하다.
나는 어떤 사용자가 다른 언어를 사용하고 있고 거기에 어떤 다른 언어가 사용되고 있는지 알려줄 것입니다. 그것은 방탄되지 않습니다하지만 우리의 목적을 위해 괜찮을 것입니다. 감사.
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문아마 명백한 것을 말하지만, 스크립트가 여러 로케일에서 실행되어야하는 경우, 표시 상자의 이름을 인덱싱 할 때주의해야합니다.
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문고마워, 그 숫자 (내 경우에는 4)가 바뀔 수 있다는 사실은 내가 예상 한 것입니다. 귀하의 솔루션은 완벽하게 작동합니다.
또한 변수 (목록)를 사용하여 상한 및 하한 제한을 설정하는 데 문제가 있습니다. 예제에서했던 것처럼 하드 코딩 된 목록을 사용할 때 잘 작동하지만 단순한 목록 요소 만 사용할 수는 없습니다. 아마도 eval (substitute ())을 올바르게 사용하지 않았을 것입니다. 그러나 제 경험상 이것이 JSL의 가장 혼란스러운 부분 중 하나입니다.
이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
.
| | | mySpecsExpr = expr (열 (yParamNames) ) << set 속성 ( "Spec Limits", {aaa, bbb})); |
| | | 쇼 (eval (dList [1]) , eval (dList [2]) ); // <-이 값은 로그 창에서 정밀하게 평가됩니다. |
| | | eval (substitute (mySpecsExpr, expr (aaa), eval (dList [1]) , expr (bbb), eval (dList [2]) )); |
편집 : 사실이 방법을 기반으로 알아낼 수있었습니다 : 46953 - 변수를 사용하여 열 속성 스크립팅 방법
이 작동합니다. 그러나 누군가가 더 간단한 대답을한다면, 나는 그것을 고맙게 생각할 것입니다.
| | | | 평가 ( |
| | | | | Eval Expr ( |
| | | | | | 열로 (yParamNames ) << 속성 설정 ( |
| | | | | | | "사양 제한" |
| | | | | | | {LSL (Expr (eval (dList [1]) )), USL (Expr (eval (dList [2]))) ))} // // 대상 (Expr (tLimit)), 표시 제한 (0)} |
| | | | | | ) |
| | | | | ) |
| | | | ); |
다시 : 트리 구조의 개체를 사용하여 줄거리 출력에서 데이터를 가져 오는 질문이 특정 플랫폼이나 노드의 번호 매김이 얼마나 강력한 지 모르겠습니다. 그러나 일반적으로 번호 매기기는 고정되어 있지 않지만 보고서의 전체적인 복잡성에 따라 변경 될 수 있습니다.
특정 디스플레이 박스를 강조하기위한 다른 방법은 그 이름을 사용하는 것입니다. 와일드 카드도 지원됩니다. 이름이 번호 매기기보다 강력하다고 생각합니다. JMP 버전 간에는 거의 바뀌지 않지만 레이아웃과 태만 옵션 수는 버전 및 환경 설정에 따라 다를 수 있습니다.
나는 n 예제 스크립트의 컨텍스트, 모두 아래의 세 줄은 모두 같은 결과를 반환합니다.
보고서 ( distObj ) [ 번호 열 상자 ( 4 )] << 도망 ;
보고서 ( distObj ) [ 번호 열 상자 ( "실제 %" )] << 도망 ;
보고서 ( distObj ) [ 번호 열 상자 ( "%?" )] << 도망 ;