data whatever;
infile '';
input price cost;
<statement>;
run;
在<statement>
中,使用total = sum(total,cost)
和total = total + cost
之间的区别是什么?
答案 0 :(得分:2)
如果您在 input
语句之后实际包含它,那么您可能遇到任何一个问题。
ProgramFOX发布的信息是正确的,但是如果你在询问这三个陈述之间的区别,那还有一点:
total = sum(total,cost);
total + cost;
其中第二个意味着retain total;
语句,并且还将空值视为零。当您使用这种类型的表达式时,您会遇到null问题:
total = total + cost;
答案 1 :(得分:2)
差异可以在下面看到:
如果要计算累计总数,则应使用sum语句。
总计=总和(总计,费用)/ *它是一个和函数* /
总+成本/ *是一个sum语句,表单是变量+表达式* /
这里:
“total”指定累加器变量的名称,该变量包含数值。
1)在SAS读取第一个观察结果之前,变量(在这种情况下为总数)自动设置为0。变量的值从一次迭代到下一次迭代保留,就像它出现在RETAIN语句中一样。
2)要将sum变量初始化为0以外的值,请将其包含在具有初始值的RETAIN语句中。
和
“费用”是一个表达式
1)计算表达式并将结果添加到累加器变量。
2)SAS将产生缺失值的表达式视为零。
sum语句与sum函数的不同之处在于sum语句保留了之前计算的值。
然而, sum语句等同于使用SUM函数和RETAIN语句,如下所示:
retain total 0;
total=sum(total,cost);