평가 열에서 누적 합계 수집안녕하세요 여러분,
이전 행을 평가하고 zscore를 추가한 다음 이 평가와 0 사이의 최대값을 취하는 열을 만들려고 합니다. Cumulative Sum 방정식을 중심으로 시차 공식을 이동하려고 시도했지만 운이 없었습니다. 이전 행에 관계없이 zscore 값만 사용합니다. 이 문제를 해결하는 방법에 대한 도움을 주시면 대단히 감사하겠습니다!
dt = Open("Big Class.jmp");
dt << New Column( "zscore", Formula((:weight - Col Mean( :weight, :sex )) / Col Std Dev( :weight, :sex )));
dt << Sort( By( :sex), Order( Ascending), Replace Table );
dt << New Column( "S_Hi", Formula( If( :sex == Lag( :sex ), Max( 0, :zscore + Lag( Col Cumulative Sum( :S_Hi ) ) ), Max( 0, :zscore ) ) ) )
Re: 평가된 열에서 누적 합계를 수집합니다.이봐 마크, 완벽하게 해결됐어. 의견을 보내 주셔서 감사합니다!
Re: 평가된 열에서 누적 합계를 수집합니다.Jim의 솔루션은 원래 스크립트를 기반으로 하지만 별도의 누적 합계를 사용하고 싶지는 않다고 생각합니다. 다음 스크립트는 아직 원하는 것이 확실하지 않기 때문에 올바르지 않지만 더 간단하고 실제 솔루션에 더 가깝습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << Sort( By( :sex ), Order( Ascending ), Replace Table );
dt << New Column( "Z Score", Formula( (:weight - Col Mean( :weight, :sex )) / Col Std Dev( :weight, :sex ) ) );
dt << New Column( "S_Hi",
Formula( If( :sex == Lag( :sex ), Max( 0, :zscore + Lag( :S_Hi ) ), Max( 0, :zscore ) ) )
);
Re: 평가된 열에서 누적 합계를 수집합니다.Nelson에게 도움을 주셔서 감사합니다. 하지만 안타깝게도 Max 값은 적용되지 않습니다. 적용된 경우 40번째 행은 이미 5E+10 값입니다. 본질적으로 나는 열의 모든 이전 값의 합계를 얻고 해당 행의 zscore에 추가하려고 합니다.
Re: 평가된 열에서 누적 합계를 수집합니다.내가 이것에 접근하는 방법은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << New Column( "zscore",
Formula( (:weight - Col Mean( :weight, :sex )) / Col Std Dev( :weight, :sex ) )
);
dt << Sort( By( :sex ), Order( Ascending ), Replace Table );
dt << New Column( "S_Hi",
Formula(
If(row()==1,cum=0);
If( :sex == Lag( :sex ),
x=Max( 0, :zscore + cum ),
x=Max( 0, :zscore )
);
cum=cum+x;
x;
)
);