- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
타임스탬프를 사용하여 중복 행 제거
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
채택된 솔루션
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
이것이 문제를 진행하는 방법에 대한 예가 될 것이라고 믿습니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Loop through the data table deleting all duplicate rows
i = 1;
While( i <= N Rows( dt ),
// Find the upper and lower bounds to match on
lower = :timeStamp[i] - In Minutes( 6 );
upper = :timeStamp[i] + In Minutes( 6 );
// Find the rows that match
theRows = dt << get rows where( :timeStamp > lower & :timeStamp < upper );
// Remove the current row from the list. We do not want to delete it
Try( theRows[1] = [] );
// Delete the remaining rows
Try( dt << delete rows( theRows ) );
// Increment the row to work on
i++;
);
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
안녕 @psundar6 ,
@txnelson 아주 좋은 솔루션을 제공합니다.
테이블 정렬 및 열 수식을 사용하는 대체 접근 방식은 대화형으로 수행하거나 다음과 같이 스크립팅하여 수행할 수 있습니다.
dt = current data table();
dt << Sort(
By( :TimeStamp, :Tool ),
Replace Table,
Order( Ascending, Ascending )
);
dt << New Column( "to delete",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Formula( If( :Tool == Lag( :Tool, 1 ) & Date Difference( Lag( :TimeStamp, 1 ), :TimeStamp, "Minute" ) < 6, 1, 0 ), eval formula )
);
dt:to delete << suppress eval(true);
dt<< delete rows (dt<< get rows where (:to delete == 1));
그것이 당신에게 효과가 있는지 알려주세요.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
이것이 문제를 진행하는 방법에 대한 예가 될 것이라고 믿습니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Loop through the data table deleting all duplicate rows
i = 1;
While( i <= N Rows( dt ),
// Find the upper and lower bounds to match on
lower = :timeStamp[i] - In Minutes( 6 );
upper = :timeStamp[i] + In Minutes( 6 );
// Find the rows that match
theRows = dt << get rows where( :timeStamp > lower & :timeStamp < upper );
// Remove the current row from the list. We do not want to delete it
Try( theRows[1] = [] );
// Delete the remaining rows
Try( dt << delete rows( theRows ) );
// Increment the row to work on
i++;
);
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
작동합니다. 감사합니다!
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
안녕 @psundar6 ,
@txnelson 아주 좋은 솔루션을 제공합니다.
테이블 정렬 및 열 수식을 사용하는 대체 접근 방식은 대화형으로 수행하거나 다음과 같이 스크립팅하여 수행할 수 있습니다.
dt = current data table();
dt << Sort(
By( :TimeStamp, :Tool ),
Replace Table,
Order( Ascending, Ascending )
);
dt << New Column( "to delete",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Formula( If( :Tool == Lag( :Tool, 1 ) & Date Difference( Lag( :TimeStamp, 1 ), :TimeStamp, "Minute" ) < 6, 1, 0 ), eval formula )
);
dt:to delete << suppress eval(true);
dt<< delete rows (dt<< get rows where (:to delete == 1));
그것이 당신에게 효과가 있는지 알려주세요.
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
안녕하세요 론,
귀하의 솔루션을 시도한 결과 결과에 문제가 있습니다.
귀하의 코드를 실행한 결과를 첨부했습니다. 어떤 이유로 중복된 항목을 두 개 포착하지 못하는 것 같습니다.
감사해요.
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: 타임스탬프를 사용하여 중복 행을 제거합니다.
감사해요 @psundar6 나에게 알려줘서. 오타가 있어서 지금 수정했습니다..
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.