If / Then 스크립팅안녕하세요 그룹, 나는 누군가가 도울 수 있기를 바라고 있습니다!
일부 if / then 필터링을 돕기 위해 코딩 조각을 찾고 있습니다.
첨부 된 데이터 테이블에는 다양한 "맛"을 가진 여러 개의 SampleID가있는 다양한 로트 번호가 있습니다.
목표는 다음과 같습니다.
LOT #이 첫 번째 인스턴스이면 선택됩니다. 다음 행이 동일하면 건너 뛰고 새로운 LOT #이 보일 때까지 건너 뜁니다.
다음 LOT #의 새로운 첫 번째 인스턴스가 선택됩니다. 그리고 계속.
그런 다음 선택한 행을 새 데이터 테이블로 부분 집합화할 수 있습니다.
나는 이것이 가능한지 누군가 알고 있기를 바라고 있습니다. JMP는 무엇이든 할 수 있으므로 확신 할 수 있습니다. 어떻게 해야할지 모르겠습니다.
정말 고마워!
제목 : Re : If / Then 스크립팅 @kwmcm ,
어쩌면이게 뭐니?
dt = Current Data Table();
dt << Sort(By(:LOT#),Order(Ascending),Replace Table(1));
// Get Lot #
LotNums = dt:LOT# << Get Values;
// Get Unique Lot #
UniqueLotNums = Associative Array(LotNums) << Get Keys;
// Define List and new column values
SaveList = [];
// Find first occurence
for(i = 1, i <= N Items(UniqueLotNums), i++,
SR = dt << Select Where(:LOT# == UniqueLotNums[i]) << Get Selected Rows;
dt << Clear Select ;
SaveList = SaveList || SR[1];
);
// New Column
NewCol = As List(J(N Rows(dt),1,"0"));
NewCol[SaveList,0] = LotNums[SaveList];
dt << New Column("test",character,nominal,<< Set values(NewCol));제목 : Re : If / Then 스크립팅예! 이것은 내가 찾고 있었던 바로 그 것이다!
고맙습니다!
제목 : Re : If / Then 스크립팅귀하의 질문을 이해하고 있으며, 귀하의 제비가 모두 함께있는 경우,이 코드는 작동합니다
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where( :name( "LOT#" )[Row()] != Lag( :name( "LOT#" )[Row()] ) );
dtNew = dt << subset( selected columns( 0 ), selected rows( 1 ) );
제목 : Re : If / Then 스크립팅우선 LOT #로 정렬해야하지만, 그렇게해야합니다. 따라서 코드는 다음과 같습니다.
dt = Current Data Table();
dt << (select where( :LOT# != Lag( LOT# ) ));
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
지연 기능은 이전 관측치의 값을 봅니다.