중복 행 제거(첫 번째 중복 유지)나는 이것이 이전에 논의되었다는 것을 알고 있지만 나의 특별한 상황에 대한 제안을 찾고 있습니다. 매우 큰 데이터 테이블(~50열 x 50,000+행)이 있습니다. "중복 행"을 확인해야 합니다. 여기서 중복은 행이 세 개의 열(예: ColA, ColB 및 ColC)에서 일치함을 의미합니다. 중복된 항목이 있으면 일치하는 행 중 첫 번째 행을 제외하고 모두 삭제해야 합니다.
이상적으로는 업데이트된 테이블을 자주 다시 가져오고 다시 분석해야 하므로 스크립트를 사용하여 이 작업을 수행하고 싶습니다. 나는 이 문제를 해결하기 위해 요약 테이블을 사용할 수 있다고 생각합니다(적어도 중복 행을 식별하고 선택합니다). 그러나 거기에서 "일치하는" 행의 각 집합을 통해 이동을 자동화하고 첫 번째 행을 제외한 모든 행을 삭제하는 방법을 잘 모르겠습니다.Re: 중복 행 제거(첫 번째 중복 유지)훌륭해요!
한편 (JMP 13에서는) 이는 동일해야 합니다.
// Keep first instance of duplicates only
dt << select where(Col Min(Row(), :a, :b, :c) < Row()) << delete rows;
Re: 중복 행 제거(첫 번째 중복 유지)JMP 14에는 행 메뉴 아래에 "중복 행 선택"이라는 새로운 명령이 있으므로 조인을 수행할 필요 없이 직접 수행할 수 있습니다.
dt << select duplicate rows(match(:a, :b, :c));
dt << delete rows;
중복 행 제거(첫 번째 중복 유지)감사합니다. 잘 작동했습니다!스크립트 버전에 대한 코드는 다음과 같습니다.
// JMP script to Eliminate duplicate rows "matching Parent, Wafer, & Raw Number"
dt3 = Current Data Table();
dt2 = dt3 << Summary(
Group( :Parent, :Meas Wafer Id, :Raw Number )
);
dt = dt3 << Join(
With( dt2 ),
Update,
By Matching Columns(
:Parent = :Parent,
:Meas Wafer Id = :Meas Wafer Id,
:Raw Number = :Raw Number
),
Drop multiples( 1, 0 ),
Name( "Include non-matches" )(0, 0),
Preserve main table order( 1 ),
);
Close(dt2, no save);
Close(dt3, no save);
Re: 중복 행 제거(첫 번째 중복 유지)일치하는 3개 열에 대한 요약을 사용하겠습니다. 그런 다음 요약 테이블을 원본 테이블에 조인하고 동일한 3개 열을 일치시키고 중복 삭제 옵션을 선택한 다음 출력 테이블에 원하는 관련 열만 선택합니다.