나는 이것이 스팸이 아니며 내가 해결하려고 하는 합법적인 문제이기 때문에 스팸으로 표시되는 이유를 이해할 수 없습니다.
게시물 링크: (특정 조건과 관련된 중복 측정을 삭제하는 스크립트 문제)
~에 의해 신선한 사용자
https://community.jmp.com/t5/Discussions/Problem-with-script-to-delete-redundant-measurements-specific-to/mp/554948#M76947
테이블 분할 기능을 수행하기 전에 트리밍하는 직렬 개별 측정의 여러 행으로 구성된 데이터 테이블이 있지만 제거하고 싶은 일부 중복 측정에 문제가 있지만 현재 코드는 '를 사용하는 것은 내가 필요로 하는 것에 대해 매우 느리고 비효율적일 수 있습니다. 배경 정보: 각 행은 연속적으로 수행된 재료 조각에 대한 개별 자동화 측정의 결과이며 다음 열이 포함된 보고서를 생성합니다. 각 개별 재료 조각에 할당된 고유 부품 ID [ PartID ] 개별 자재를 생성하는 데 사용된 원자재 [ LotID ] 수행된 측정에 대한 실제 측정 값 [ Value ] 측정 값(합격/실패/재작업)을 기반으로 할당된 측정 결과 [ Result ] 측정 타임스탬프 [ Date_Created ] 내 장비 재료당 수십 개의 측정 행을 생성하고 보고서당 수천 개의 재료를 처리합니다. 그런 다음 해당 보고서를 제 원본 데이터 테이블로 JMP에 제공합니다.또한 각 보고서에는 여러 로트가 포함되어 있으므로 데이터 테이블에는 "PartID = 1"에 대한 여러 참조가 있습니다. 각 로트에 1부터 시작하는 일련 번호가 부여되기 때문입니다. 따라서 주어진 재료를 참조하려면 PartID와 LotID를 모두 사용해야 합니다.결과가 "재작업"인 경우 측정 장비는 개별 재료 조각에 대한 추가 측정을 중지하고 재료 조각의 방향을 변경한 다음 라인의 시작 부분으로 반환하여 이전의 모든 테스트를 다시 측정합니다. 재료와 연관되어 있지만 여전히 동일한 고유 부품 ID를 유지합니다. 원하는 결과: 재작업 후에 모든 측정이 반복되고 재작업이 측정 값에 영향을 미칠 수 있기 때문에 스크립트를 사용하여 데이터 테이블을 살펴보고 재작업 결과까지(및 포함) 모든 측정을 제거하려고 합니다.이를 위해 현재 JSL 스크립트를 사용하여 각 행을 반복하고 다음을 수행합니다. 결과가 "재작업"인지 식별합니다. 그렇다면 다음을 수행하십시오. 주어진 재료 조각에 대한 PartID를 "xPartID"로 식별 지정된 재료 조각에 대한 LotID를 "xLot"으로 식별 지정된 측정에 대한 Date_Created를 "xDate"로 식별 (PartID = xPartID) 및 (LotID = xLot) 및 (Date_Created <= xDate) 결과가 "재작업"이 아닌 경우 루프에서 빠져 나오므로 계속할 필요가 없습니다. 나는 계속해서 극심한 속도 저하를 겪고 있으며 기본적으로 코드는 프로그램 충돌로 이어집니다.단계별로 실행하면 작동하는 것처럼 보이지만 실행하도록 두면 결국 죽습니다. 실제 코드는 다음과 같습니다. // 두 개의 잠재적인 "Rework" 결과를 공유 값 "aRework"로 다시 코딩합니다. 문자 "a"를 앞에 두어 열을 오름차순으로 정렬하면 이 모든 값이 목록의 시작 부분에 있으므로 보다 쉽고 빠르게 처리할 수 있습니다. dt << Recode Column( dt:result, {Map Value( _rcOrig, {"FailOnHighRework", "aRework", "FailOnLowRework", "aRework"}, Unmatched( _rcNow ) )}, 업데이트 속성( 1 ), 대상 열( :결과 ) ); //재코드화 후 결과 열을 사용하여 테이블을 정렬하여 모든 재작업 행이 테이블의 시작 부분에 있도록 SortColumn = "result"; dt << Sort( By( :result ), 테이블 바꾸기, Order( Ascending ), 공식 평가 억제( 1 ) ); //이제 행별 스크립트를 실행합니다. dt << 데이터 업데이트 시작; 각 행에 대해( If( :result == "aRework", xRow = Row(); xPartID=:PartID[Row()]; xLot=:lot[Row()]; xDate=:date_created[Row()]; dt <
이 메시지에는 0개의 응답이 있습니다.