다른 열에 대한 선택적 조건을 기반으로 한 열이 필요합니다.안녕 모두,
측정 절차에서 실패한 비율을 찾고 있습니다. 내 요구 사항 및 샘플 데이터는 다음과 같습니다.
도움이 되셨나요?
감사 해요,
스크립팅Re: 다른 컬럼의 선택적 조건에 따른 컬럼이 필요합니다.여기서 가장 까다로운 부분은 적절한 그룹화 열을 정의하는 것입니다(Avg_Time 참조 및 Sample --> Group 연결).
이것은 Sample과 연결된 "count"와 유사합니다.
요구 사항을 계산해야 하는 경우 "결과" 열의 표에 표시된 대로 수행합니다. 배후에서 각 행(동일한 그룹에 속하는 모든 행)에서 찾으려고 시도하고 "그룹 내 측정" 열에 측정 포인트를 표시합니다.
자세한 사항은 첨부된 표를 참조하시기 바랍니다.

Re: 다른 컬럼의 선택적 조건에 따른 컬럼이 필요합니다.안녕하세요 게오르크
테이블 열 Formula에서 잘 작동하는 것 같습니다. 그러나 그것을 스크립트로 만들 수는 없습니다. 또한 For 루프와 다른 열을 기반으로 유사한 접근 방식을 시도했지만 최종 결과를 얻기 위해 측정 패턴을 생성할 수 없습니다. 다음은 내가 시도하고 있는 스크립트입니다.
/////////////////////////////////////////////////////////////////
dt = Current Data Table();
dt << New Column( "Pattern0",
Expression,
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
);
///////////////////////////////////////////
// similar approach but based on different column and For loop--
//////////////////////////////////////////////////////
dt << New Column( "Pattren",
Expression,
For( i = 1, i <= N Rows( dt ), i++,
Row_List = {};
If(
:Count == Lag( :Count, -1 ) & :Sample == Lag( :Sample, -1 ) | :Count == Lag( :Count, 1 ) &
:Sample == Lag( :Sample, 1 ),
Insert Into( Row_List, Row() )
);
(:Measurement << get values)[Row_List];
)
);
/////////////////////////////////////////////////////////////
둘 다 빈 열만 제공합니다. 수식을 스크립트로 변환하는 방법에 대한 제안이 있습니까?
다시 한번 감사합니다.
Re: 다른 컬럼의 선택적 조건에 따른 컬럼이 필요합니다.무엇을 하려는지 잘 모르겠습니다.
해당 계산을 현재 데이터 테이블에 추가하려면 아래 코드가 작동합니다. 그 계산을 "Formula()"에 넣어야 합니다.
열이 있고 스크립팅하려는 경우 가장 좋은 방법은 항상 테이블의 빨간색 삼각형 메뉴에서 테이블 스크립트를 복사하는 것입니다. 거기에서 스크립트를 얻고 스크립트로 테이블(또는 열)을 생성하는 방법을 검토할 수 있습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Pattern",
Expression,
"None",
Formula(
(row_index_lst = {} ; row_Time_A = :Time_A ; row_Sample = :Sample ; threshold = 60 * 15 ;
For Each Row(
If( Abs( :Time_A - row_Time_A ) < threshold & :Sample == row_Sample,
Insert Into( row_index_lst, Row() )
)
));
(:Measurement << get values)[row_index_lst];
),
Set Display Width( 232 )
);