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
之间的区别吗?
答案 0 :(得分:2)
代码运行时,sum+x;
表示法添加了隐式retain
语句。
如果使用sum = sum + x;
表示法,则必须手动明确说明retain语句。即
data cumsum;
set temp;
by group;
retain sum 0;
if first.group then sum = 0;
sum = sum + x
if last.group then output;
run;