다른 열의 조건을 기반으로 한 열의 'n' 행 평균 -안녕 모두,
다른 열(-- "Customer_ID")을 기반으로 'n' 행 평균(첨부된 예에서 n == 3)을 찾고 있습니다. 각 그룹(고객)에 대한 내 행 번호가 'n' 즉 [행 == 정수 상수 xn]의 정수 승수인 경우. 내 기본 공식은 잘 작동합니다. 그러나 Row != Integer Constant xn이면 다른 그룹의 나머지 행을 가져옵니다. 그것은 나에게 잘못된 결과를 주고 있습니다.
내가 원하는 것 -
최상의 경우 - Cutomer_ID를 기반으로 데이터의 하위 집합에 대해 'n' 행 평균을 계산하고 마지막 남은 행에 대해 이전 평균 값의 평균 값을 입력합니다.
그렇지 않으면 - 빈 값을 그대로 둡니다.
:Customer_ID != Lag(:Customer_ID, -2) 를 넣으려고 했지만 작동하지 않았습니다. Customer_ID에서 테이블을 분할한 다음 계산을 수행할 수 있지만 평균을 수행하려면 5000개 이상의 ID와 약 20개의 열이 있습니다. 가장 좋은 생각은 아닌 것 같습니다!
어떤 도움을 주세요?
감사 해요.

스크립팅Re: 다른 열의 조건을 기반으로 한 열의 'n' 행 평균 -여기 내가 생각해낸 공식이 있다

If( Row() == 1 | :Customer_ID != Lag( :Customer_ID ),
count = 0
);
If( count == 3, count = 0 );
count = count + 1;
If(
count == 1,
currentAvg = Col Moving Average( :Value, 1, before = 0, after = 2, :Customer_ID );
display = currentAvg;,
:Customer_ID == Lag( :Customer_ID, -2 ), display = .,
display = currentAvg
);
display;
도움말 풀다운 메뉴에서 사용할 수 있는 JMP 문서 라이브러리에 있는 스크립팅 가이드를 시간을 내서 읽어야 합니다!
Re: 다른 열의 조건을 기반으로 한 열의 'n' 행 평균 -이것이 모든 경우에 작동하는지 알 수 없지만 제공된 예제 데이터에서는 작동합니다.
If(Col Cumulative Sum(1, :Customer_ID) > Col Number(:Value, :Customer_ID) - 1,
Lag(Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID), 1),
If(Modulo(Col Cumulative Sum(1, :Customer_ID), 3) == 1,
Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID),
.
)
)
스크립팅 인덱스/스크립팅 가이드에서 각 함수/공식이 하는 일을 확인하십시오. 동안 수식 편집기에서 선택한 하위 표현식 결과를 확인하여 매우 지저분하므로 수행 중인 작업을 이해합니다.
