SAS中的SUM语句和sum变量之间的区别?

时间:2015-06-05 23:25:50

标签: sum sas

我对SAS中2个程序中我们称之为声明的内容感到困惑? 两个语句都是SUM语句吗?

当我遇到一个询问是否可以在DATA步骤中使用SUM语句的问题时,我感到很困惑。我想知道他们指的是哪个总结陈述?

第一个程序 -

Data s1;
set Ori.sales;
Total+Salary;  /* What do you call this highlighted statement */
run;

第二个计划 -

Proc print data=ori.sales;
sum Salary;  /* What do you call this highlighted statement */
run;

4 个答案:

答案 0 :(得分:3)

看起来确实都叫做SUM语句。一个是数据集SUM语句,第二个是Proc Print Sum语句。但是,它们的运作方式不同。

参考SAS 9.2文档: 数据步骤SUM语句 http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000289454.htm

Proc Print SUM Statement http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000064121.htm

简短版本: 数据步骤SUM包括对变量Total的隐式保留并计算运行总计。

Proc Print SUM语句将数据集的总和作为最后一行添加,但不包括运行总计。

答案 1 :(得分:1)

如果我清楚地理解你的问题......

SUM“函数”(在数据步骤中使用)将处理缺失值,在数据步骤中使用total = var1 + var2将不会(处理缺失值)。以下示例......

data sales;
input a b c d;
cards;
1 2 3 .
4 5 . 8
. 4 6 .
4 5 1 2
;
run;

即使您缺少值,下面的SUM函数也会生成“总计”列 -

data new;
set sales;
Total=sum(a,c);
run;

如果您要添加的变量中缺少值,则使用(+)符号的下面的数据步骤将使“总计”值显示为“缺失” -

data new2;
set sales;
Total = a + c;
run;

答案 2 :(得分:0)

你可以调用第一个程序来计算累计金额,每个记录得到的总数是当前记录的工资和所有记录前工资总和之和,最后记录,总数是所有记录的工资总和。在第二个程序中,您只能获得所有记录的工资总和。

答案 3 :(得分:-1)

我想通过关注sum声明和Sum函数来强化@Reeze答案。

当您遇到DATA STEP的伪代码/ SAS编程考试时,您会发现这两个术语经常出现。

sum(variable(s))函数是指在任何语句中使用Sum

a + b语句是指使用自动保留形式的求和变量:DataContext

它们的相似之处在于它们都可以很好地处理缺失值。