1 천만 항목이있는 열의 이동 평균을 계산하는 방법은 무엇입니까?나는 이동 평균을 계산하기 위해 1000 만 행이있는 열에서 아래 공식을 실행하려고 시도하지만 스크립트는 영원히 계속 실행되며 jmp는 응답을 중지합니다. thisTable << New Column ( "av", Numeric, Continuous, Formula (Mean : x [Index (Row () - 99999, Row ())])))); 수식에 제한이나 문제가 있습니까? 이 경우 어떻게 이동 평균을 계산할 수 있습니까?
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?Col 이동 평균 () 함수는 수식에서 쉽게 제거 할 수 있습니다. 이전 게시물의 두 번째 수식에 제공된 접근 방식을 사용하여 데이터를 합산 한 다음 나누어 이동 평균을 계산하면 원하는 것을 얻을 수 있습니다. 제공되는 코드가 어떻게 작동하는지 이해하십시오. 다음은 수식의 새로운 수정입니다.
If( Row() == 1,
theLag = 100000;
theSum = 0;
);
If(
Row() <= theLag,
theSum = theSum + :x;
theAvg = theSum/Row(),
theAvg = ((theSum - :x[Row() - theLag]) + :x) / theLag
);
theAvg;
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?이 스크립트는 JMP12에서 작동하지 않습니다 (Col Moving Average는 JMP12에서 지원되지 않습니다)제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?이것을 시도하고 빠르게 실행되는지 확인하십시오.
Col Moving Average( :x, 1, 999999, 0 )
설명서 및 예제는 스크립팅 색인을 참조하십시오.
또는 각 행의 계산에 대해 100000 개의 행 목록에 대한 평균을 계산해야하는 필요성을 없애고 단일 뺄셈, 단일 더하기 및 하나의 나누기로 잘라내어 시도 할 수도 있습니다.
If( Row() == 1,
theLag = 100000;
theSum = Sum( :x[Index( 1, theLag )] );
);
If(
Row() < theLag, theAvg = <FONT color="#c7254e" face="Consolas" style="background-color: #f4f2f9;">Col Moving Average( :x, 1, theLag, 0 )</FONT>,
Row() == theLag, theAvg = theSum / theLag,
theAvg = ((theSum - :x[Row() - theLag]) + :x) / theLag
);
theAvg;
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?제안 된 솔루션을 시도했지만 올바른 대답을주지 못했습니다. 도와주세요.
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?당신이 틀렸어, 수식이 잘못되었습니다. 나는 "theSum"의 가치를 올바르게 설정하지 않았습니다. 다음은 올바른 결과를 얻습니다.
If( Row() == 1,
theLag = 3;
theSum = 0;
);
If( Row() <= theLag,
theSum = theSum + :yield;
theAvg = theSum / Row();
,
theAvg = ((theSum - :yield[Row() - theLag]) + :yield) / theLag;
theSum = (theSum - :yield[Row() - theLag]) + :yield;
);
theAvg;
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?예, 이제는 오류가 발생하지 않지만 1 천만 항목이 작동하는지 확인해야합니다.
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?그것은 10,000,000 행에 대해 작동합니다.
테스트 결과를 회신 해주십시오.
다음은 수식의 더 빠른 버전입니다. ..... 두 번째 계산의 필요성을 제거합니다.
If( Row() == 1,
theLag = 3;
theSum = 0;
);
If( Row() <= theLag,
theSum = theSum + :yield;
theAvg = theSum / Row();
,
theSum = (theSum - :yield[Row() - theLag]) + :yield;
theAvg = theSum / theLag;
);
theAvg;
제목 : Re : 어떻게 천만 항목과 컬럼의 이동 평균을 계산?포인트 앤 클릭 사람들은 저처럼 컬럼의 헤더를 오른쪽 클릭하고 "New Formula Column"> Row> Moving Average를 선택하여 이동 평균을 얻을 수 있습니다. 가중치를 사용할지 여부를 결정하기 위해 두 번 클릭하거나 두 번 클릭해야하지만 시뮬레이트 된 10M 행 데이터 표에 대해 확인을 클릭하면 꽤 빠릅니다.
HTH
계산서