그룹별로 적용된 시차 함수는 어떻게 사용하나요?한 행에서 다음 행까지의 지연을 계산하려는 데이터가 있지만(시계열임) 많은 그룹에 대한 데이터가 있습니다.각 그룹 내에서 별도로 생성된 지연을 원합니다.많은 통계 함수(예: Col Mean)의 경우 하나 이상의 그룹별 변수를 추가하는 옵션이 있습니다.Lag 또는 Dif 함수에 대해 동일한 기능이 있는 것 같지 않으며 스크립팅 설명서에서 어떻게 수행할 수 있는지 나타내는 항목을 찾을 수 없습니다.각 그룹의 시차를 개별적으로 쉽게 계산할 수 있는 방법이 있습니까?현재 내가 찾은 유일한 방법은 먼저 데이터를 날짜 및 그룹별로 정렬한 다음 IF(그룹) - 지연(그룹)과 같이 지연(그룹)과 동일한 그룹에 의존하는 IF 공식을 사용하는 것입니다. 지연(관심 있는 열), 그렇지 않으면 누락됨.
데이터 테이블스크립팅Re: 그룹별 지연 함수는 어떻게 사용하나요?나는 txnelson이 해결책을 가지고 있을 것이라고 추측했을 것입니다!내가 가진 것보다 실제로 더 우아하거나 단순하지는 않지만 데이터를 정렬할 필요가 없으므로 훨씬 더 유연합니다.감사해요.
Re: 그룹별 지연 함수는 어떻게 사용하나요?다음은 행이 2단계로 정렬되지 않은 경우에도 작동하는 수식입니다. (예: 날짜별로 정렬됨) 수식의 lagList는 Col 이동 평균() 함수가 처음 발생하더라도 현재 행을 반환하는 문제를 처리하기 위해 존재합니다.
If( Row() == 1, lagList = {} );
If( Contains( lagList, :administrative_area_level_1 || :administrative_area_level_2 ),
Col Moving Average(
:deaths,
weighting = 1,
before = 1,
:administrative_area_level_1,
:administrative_area_level_2
) * 2 - :deaths,
Insert Into( lagList, :administrative_area_level_1 || :administrative_area_level_2 )
);

다음은 작동하는 비효율적인 공식입니다.
curLevel1 = :administrative_area_level_1;
curLevel2 = :administrative_area_level_2;
curRow = Row();
Try(
:deaths[Max(
Current Data Table() << get rows where(
:administrative_area_level_1 == curLevel1 & (:administrative_area_level_2 == curLevel2 & Row() < curRow)
)
)]
);
Re: 그룹별 지연 함수는 어떻게 사용하나요?이를 보다 구체적으로 설명하기 위해 간단한 예를 첨부했습니다.지연된 죽음 열은 내가 원하는 것입니다. 하지만 더 간단하고 우아하게 할 수 있기를 바랍니다.