안녕,
참조 데이터 테이블 값을 기반으로 테스트 결과를 오프셋하는 jmp 스크립트가 있습니다.
다음 작업을 수행합니다.
1. 데이터 테이블 및 참조 데이터 테이블 읽기
2. 사이트 번호를 선택하는 새 창을 생성하고,
3. 사용자 입력(사이트 번호 1 또는 2)을 기반으로 해당 데이터를 참조 데이터 테이블 값에 정렬합니다.
웨이퍼 ID로 평균을 취하여 기본 데이터 테이블에 오프셋을 적용합니다.
스크립트는 다음과 같습니다. 예상한 출력을 생성하지 않습니다.
Names Default To Here( 1 );
dt1 = Data Table( "Reference data table" );
dt2 = Current Data Table();
For( i = 1, i <= N Rows( dt1 ), i++,
theTest = dt1:Tests[i];
Try( Column( dt2, theTest ) << set property( "TheMean", dt1:mean[i] ) );
);
New window( "", modal,
ct = checkbox({"1","2"}),
Buttonbox ("Ok",
get = ct << Get Selected ();
)
);
sitenum = Transform Each({str}, get, Num(str));
Col_List1 = dt2 << Get Column Names( "String" );
For( c = 1, c <= N Col( dt2 ) - 1, c++,
theMatrix = [];
name = Column( Col_List1[c] ) << Get name;
If( Contains( Col_List1[c], "IL" ),
mean = .;
Try( mean = Column( dt2, col_list1[c] ) << get property( "theMean" ) );
// Don't process if a value for theMean does not exist
If( Is Missing( mean ) == 0,
For Each Row(
If( Contains(sitenum, dt2:SiteNumber), // Something needs to be changed here *****
r = Row();
//mean = dt1:Mean[dt1 << Get Rows Where( :Tests == name )];
//measure = mean - Col Mean( If( dt2:Strips == dt2:Strips[r], Column( dt2, c ), . ) );
measure = mean - Col Mean( As Column( dt2, c ), :Wafer ID );
theMatrix = theMatrix || Column( dt2, c )[r] + measure;
);
);
Column( dt2, c ) << Set Values( theMatrix );
);
);
);