Sort () 명령을 사용하여 열을 정렬하지 못하고 가장 최근의 중복을 제외하고 문제 해결여보세요!
여러 테이블의 여러 샘플 매개 변수를 그래프로 만드는 스크립트를 작성하려고했습니다. 샘플의 이름은 XX-AA이며, XX는 샘플의 ID / 이름이고 AA는 샘플의 시간 소인 (하루 1,2,3 등)입니다. 이렇게 많은 질문을하는 경우 사과 드리며 JSL 프로그래밍에 아직 익숙하지 않습니다.
내 테이블을 병합 한 다음 am / d / yh : m : s 형식으로 구성된 "날짜 및 시간"열을 기준으로 내 테이블을 정렬하려고합니다. 목표는 샘플의 복제본을 제거하고 가장 최근의 복제본 만 유지하면서 다른 복제본은 숨겨 지거나 제외됩니다. 테이블 병합에서 내 스크립트는 다음과 같습니다.
dtMerged=dt1<<Concatenate(dt2);
dtmerged<<Sort( By(:Sample ID), Order(Ascending));
dtmerged<<Sort(By(:Date & Time), Order(Ascending));
dtmerged<<Select Where(:Sample ID == :Sample ID[Row()+1]);
dtmerged<<hide and exclude;
어떤 이유로 든 "날짜 및 시간"열에 의한 정렬이 발생하지 않으며 결과적으로 내 행 선택이 실제로 제대로 작동하는지 확신 할 수 없습니다. 해당 선택 방법으로 인해 데이터 엔트리에 중복이 1 개 이상있는 중복을 숨기거나 제외 할 수 있습니까? 정렬이 작동하지 않는 이유는 열 이름에 "&"기호가 있기 때문입니다.
도와 주셔서 감사합니다.
제목 : Re : Sort () 명령으로 열을 정렬하지 못하는 문제 해결 및 가장 최근 duplicat 제외짐 정말 고마워! 그 일이 벌어지는 것을보기 위해 통나무를 열지 말라는 것은 나에게 매우 어리 석다. 나는 그렇게하지 않는 바보처럼 느낀다.
모든 것이 실제로 올바르게 정렬되었으므로 다음 단계로 진행할 수 있습니다. 중복되는 데이터는 제외됩니다. 필자의 목표는 샘플의 가장 최근 항목 만 남겨두고 중복 항목의 이전 반복을 제거하는 것이 었습니다. 예를 들어, 오전 5시에 2 개의 샘플을 AA-02로 표시하고 다른 날은 같은 날 오전 7시에 (테이블의 "시간 및 날짜"열에 기록됨) 촬영했습니다. 테이블에서 5AM 항목을 제외하고 7AM 항목을 유지하고 싶습니다.
또는 FJ-01이 3 개의 반복을 갖는 3 개의 샘플, 즉 5AM에서 하나, 7AM에서 하나, 그리고 10AM에서 하나씩 같은 3 개의 샘플에서 동일한 결과가 발생할 수 있습니다. 다시 말하지만, 목표는 유일한 10AM 항목을 유지하지만 5AM 및 7AM 항목을 제외하는 것입니다. 먼저 샘플 ID를 기준으로 테이블을 정렬 한 다음 날짜 및 시간을 기준으로 테이블을 정렬하고 아래에서와 같이 Select Where 명령을 사용하여 JSL 스크립트를 만들려고했습니다.
MergedTable<MergedTable<MergedTable<MergedTable<<hide and exclude;
그러나 선택이 발생하지 않으며 로그에 불행히도 오류가없는 것으로 보입니다. 선택하지 않는 선택 기준에 문제가 있습니까?
제목 : Re : Sort () 명령으로 열을 정렬하지 못하는 문제 해결 및 가장 최근 duplicat 제외코드를 실행할 때 JMP 로그에 다음 오류가 표시됩니다.
Name Unresolved: Date in access or evaluation of 'Date' , :Date/*###*/
In the following script, error marked by /*###*/
dtMerged = Current Data Table();
dtmerged << Sort( By( :Sample ID ), Order( Ascending ) );
dtmerged << Sort( By( :Date/*###*/ & Time ), Order( Ascending ) );
그것이 가리키는 문제는 "날짜 및 시간"이라는 열이 JMP에서 불리언 비교 "&"에 사용할 2 개의 이름 (날짜 및 시간)으로 해석되고 있다는 것입니다. 당신이해야 할 일은 : Name () 함수를 사용하여 상황을 명확히하는 것입니다.
dtMerged = dt1 << Concatenate( dt2 );
dtmerged << Sort( By( :Sample ID ), Order( Ascending ) );
dtmerged << Sort( By( :Name( "Date & Time" ) ), Order( Ascending ) );
dtmerged << Select Where( :Sample ID == :Sample ID[Row() + 1] );
dtmerged << hide and exclude;
.