关于SAS累加语句
(2014-01-27 09:45:48)
标签:
杂谈 |
分类: SAS编程及应用 |
累加语句是一个可执行语句,语法如下:
variable+expression;
1)variable(变量):规定累加变量的名字。必须是数值类型:在编译阶段,PDV自动设置该累加变量的值为0,它的值从当前执行后一直保留在PDV,直到下次执行为止。
2)expession(表达式):一切有效的SAS表达式。
总结:variable+expression =( retain variable 0 ) + (sum
)
1)retain 保证每一步骤执行时,会保留相应的值
2)等价于sum累加函数,则保证了累加语句遇到缺失值时,也不会出现缺失值的传导。
举例:分组累加求和,处理组内的最后一条记录。
data xinru_suhui_new_ts2;
set xinru_suhui_new_ts1;
by invest_number Sequence_no;
if first.invest_number then
amt=Fund_amount;
else
amt+Fund_amount;
result=round(sum(BEGINNING_BAL,amt,0),0.01);
new_Fund_amount=lag(result);
if last.invest_number then do;Fund_amount=-1*new_Fund_amount;
output;end;
where
run;