루프용 데이터 필터안녕,
저는 스크립팅을 처음 접했습니다. for 루프를 이해하지만 여기서는 약간의 도움이 필요합니다.
스크립팅 가이드에서 데이터 필터에 대한 for 루프 예제를 찾을 수 없습니다. 누군가가 구문에 대해 나를 도울 수 있다면 좋을 것입니다.
내가 하려는 것은 트리맵이 있고 데이터 필터 테이블로 'for' 루프를 구성하여 그래프 출력을 .png 파일로 자동으로 저장해야 한다는 것입니다.
그림을 첨부했습니다. 예를 들어, 조건 1: 웨이퍼 11, 25C에 대한 모든 Vpp 트림셋 선택 및 공식 NO(1 그래프)
조건 2: 웨이퍼 12, 85C(0,11111)에 대한 모든 Vpp 트림셋 선택 및 공식 NO(1 그래프)
조건 3: 웨이퍼 11(9개 그래프) 및 웨이퍼 12에 대해 모두에 대한 각 트림셋 값을 YES(2개 그래프)로 플롯팅
코드로 하나씩 하면 되는데, 같이 하면 안 되거든요.
감사합니다
Re: 루프에 대한 데이터 필터감사합니다 @David_Burnham , @Craige_Hales 크레이지와 @txnelson
너희들은 흔들린다!
Re: 루프에 대한 데이터 필터멋진!Re: 루프에 대한 데이터 필터아래에 제시한 예에는 행이 없는 조합을 건너뛰는 코드가 포함되어 있습니다.
http://www.pega-analytics.co.uk/blog/scripting-data-filters/
Re: 루프에 대한 데이터 필터나는 무슨 일이 일어나고 있는지 이해합니다. Craige님 정말 좋은 설명 감사드립니다.
조건이 조건과 관련된 행을 찾지 못하면 조건이 중단되고 중지됩니다.
"데이터 테이블 '최종 테이블'에 대한 이 Where 절로 인해 행이 없습니다. 웨이퍼 == "12" & 공식 == 비어 있음()"
대신 루프를 사용하여 계속 플로팅할 수 있도록 진행할 수 있습니까?
Re: 루프에 대한 데이터 필터예제 코드에서 gb는 플랫폼 물체. 그만큼 보고서 () 함수는 플랫폼의 가시적 보고서를 보유하는 DisplayBox에 대한 플랫폼 개체를 요청합니다. 플랫폼은 주변에 더 많은 DisplayBox가 있다는 것을 인식하지 못합니다. where 절이 있는 DisplayBox로 이동하려면 <
Re: 루프에 대한 데이터 필터오른쪽. 또는 gb가 설정되지 않았거나 gb가 이미 닫혀 있습니다.
당신이 사용할 수있는
show(type(gb));
showproperties(gb);
개체에 대한 정보를 얻으려면 스크립트를 사용하세요. 로그에 다음과 같은 내용이 표시됩니다.
Type(gb) = "Scriptable";
Show Control Panel [Boolean] [Default On] (Displays or hides the control panel.)
Show Legend [Boolean] [Default On] (Displays or hides the legend to the right of the graph.)
Legend Position [Enum] {Right, Bottom, Inside Left, Inside Right}
Legend Settings [Action](Opens a dialog to modify the properties of the legend.)
Continuous Color Theme [Action](Se .... < a lot more follows>
JMP에서 "스크립팅 가능한" 개체는 다음과 같은 개체입니다. 디스플레이박스 또는 플랫폼 (또는 다른 많은 가능성) 메서드가 있습니다. DisplayBox에는 다음과 같은 메서드가 있습니다. 부모의 DisplayBox의 상위 상자를 가져오기 위해 << 연산자와 함께 사용됩니다. ShowProperties 함수는 DisplayBox가 알고 있는 모든 메서드를 나열합니다. 도움말 메뉴 아래의 스크립팅 색인에서 이를 더 읽기 쉬운 형식으로 볼 수 있습니다.
스크립트에 "스크립트 가능 항목을 기대합니다..."라고 표시되면 gb 변수에 스크립트 가능 개체가 포함되어 있지 않다는 의미입니다.
Re: 루프에 대한 데이터 필터귀하의 의견을 보면 귀하는 Craig가 게시한 스크립트를 오해하고 있다고 생각됩니다.그의 코드에서는 한 번에 1개 이상의 그래프 빌더 인스턴스가 열려 있지 않습니다.그래프 빌더에 대한 포인터인 "gb"는 그래프 빌더의 현재 실행을 가리킵니다.Graph Builder 출력의 그림 개체를 생성하고 이를 파일에 저장합니다.그런 다음 그래프 빌더 객체(gb<
코드가 여러 그래프 빌더를 생성하고 각 그래프 빌더 인스턴스를 가리키는 핸들로 "gb"를 사용하는 경우 "gb"는 마지막 그래프 빌더 인스턴스만 가리킵니다.
Re: 루프에 대한 데이터 필터안녕하세요 크레이지,
구현을 하고 for 루프를 확장하기 시작했습니다.
'Send' , Report( gb ) << /*###*/parent/*###*/... 액세스 또는 평가에서 Send Expects Scriptable Object{630} 오류가 발생했습니다. 너무 많은 창이 열려 있고 JSL이 내가 말하는 GB를 인식하지 못하기 때문입니까?Re: 루프에 대한 데이터 필터고마워요 크레이지Re: 루프에 대한 데이터 필터dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
Delete Directory( "$temp/myPics" );
Create Directory( "$temp/myPics" );
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
Eval(
Eval Expr(
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
)
);
parentBox = (Report( gb ) << parent)< picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
gb << closewindow;
);
);
Close( ages, "nosave" );
Close( sexes, "nosave" );
Show( Files In Directory( "$temp/myPics" ) );
그래프 빌더용 "조부모" 디스플레이 상자를 가져와야 할 수도 있습니다. parent)<
screen capture of large icons of graphs saved by scriptscreen capture of large icons of graphs saved by script스크립트로 저장된 그래프의 큰 아이콘 화면 캡처
Re: 루프에 대한 데이터 필터그렇습니다. 그러나 그래프 빌더는 where 절도 허용합니다.
최상의,
중
Re: 루프에 대한 데이터 필터나는 그 예가 y by x 분포에 적합하다고 믿습니다. 그래프 빌더의 트리맵에 대해 이 작업을 수행하려고 합니다. 한번 시도해 보겠습니다. 고마워요 M_앤더슨
Re: 루프에 대한 데이터 필터시도해 볼 수도 있습니다 @Craige_Hales 이 질문에 대한 답변 - 링크 . 로컬 데이터 필터로 작업하는 것보다 플랫폼 호출에 where 절을 추가하는 것이 아마도 원하는 작업을 수행하는 더 우아한 방법일 것입니다.