1
data whatever;
 infile '';
 input price cost;
 <statement>;
run;

在中,使用和 和有什么<statement>区别?total = sum(total,cost)total = total + cost

4

2 回答 2

2

如果您在input声明之后实际包含其中任何一个,您可能会遇到麻烦。

ProgramFOX 发布的信息是正确的,但是如果您要询问这三个语句之间的区别,则还有更多内容:

total = sum(total,cost);
total + cost;

其中第二个暗示了一个retain total;声明,并且也将空值视为零。当您使用这种类型的表达式时,您会遇到 null 问题:

total = total + cost;
于 2013-10-08T18:37:46.370 回答
2

区别如下:

如果要计算累计总数,则应使用 sum 语句。

total = sum(total,cost) /* 它是一个求和函数 */

total+cost /* 求和语句,形式为变量+表达式 */

这里 :

“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);
于 2013-12-24T07:19:01.613 回答