Raccolta della somma cumulativa dalla colonna valutataCiao a tutti,
Sto cercando di creare una colonna che valuti la sua riga precedente e vi aggiunga lo zscore e quindi prenda il massimo tra questa valutazione e 0. Ho provato a spostare la formula del ritardo attorno all'equazione della somma cumulativa ma non ho avuto fortuna. Prende solo il valore di zscore indipendentemente dalla riga precedente. Qualsiasi aiuto su come risolvere questo sarebbe molto apprezzato!
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 ) ) ) )
Oggetto: Raccolta della somma cumulativa dalla colonna valutataEhi Mark, ha funzionato perfettamente. Grazie per il feedback!
Oggetto: Raccolta della somma cumulativa dalla colonna valutataPenso che la soluzione di Jim sia basata sulla tua sceneggiatura originale, ma non penso che tu voglia usare una somma cumulativa separata. Il seguente script non è corretto perché non sono ancora del tutto sicuro di ciò che desideri, ma è più semplice e forse più vicino alla soluzione reale:
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 ) ) )
);
Oggetto: Raccolta della somma cumulativa dalla colonna valutataGrazie per l'aiuto Nelson, ma sfortunatamente il valore massimo non entra mai in gioco. Quando applicata, la 40a riga è già un valore 5E+10. In sostanza, voglio solo ottenere la somma di tutti i valori precedenti nella colonna e aggiungerli allo zscore in quella riga.
Oggetto: Raccolta della somma cumulativa dalla colonna valutataEcco come mi avvicinerei a questo
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;
)
);