2015-06-04 2 views
0
data cumsum; 
    set temp; 
    by group; 
    if first.group then sum = 0; 
    sum + x 
    if last.group then output; 
run; 

Код выше вычисляет сумму в каждой группе, но если я изменить sum + x к sum = sum + x, результат не является правильным. Может ли кто-нибудь объяснить, какая разница между sum + x и sum = sum + x?SAS: Расчет суммы в каждой группе

+0

В дубликате обсуждается также функция 'sum', но хотя бы один из хороших ответов обсуждает все три варианта. – Joe

ответ

2

Обозначение sum+x; имеет неявное заявление retain, добавленное при запуске кода.

Если вы используете нотацию sum = sum + x;, вы должны явно указать оператор сохранения вручную. То есть.

data cumsum; 
    set temp; 
    by group; 
    retain sum 0; 
    if first.group then sum = 0; 
    sum = sum + x 
    if last.group then output; 
run; 
Смежные вопросы