2015-06-05 80 views
0

我在SAS的2个程序中我们称之为下面的语句之间感到困惑? 都是称为SUM语句的语句?SAS中SUM语句和sum变量之间的区别?

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

的第一个程序 -

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; 
+2

这是什么语言? –

回答

0

你可以先打电话程序计算累计总和,什么每条记录获得总数为当前记录的工资之和的所有款项记录前的工资,最后记录,总计是所有记录的工资总和。在第二个程序中,您只能获得所有记录的薪水总和。

1

如果我了解清楚你的问题......

总和“功能”(在数据步骤中)将处理缺失值,在数据的步骤不会(处理缺少使用总= 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; 
+0

在你的后两个例子中的Total中,不会有数据步骤中sum语句中的保留。 – Reeza

+0

从来没有出现在我身边....感谢您的珍闻! – SMW

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打印SUM声明 http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000064121.htm

短版: 数据跳跃SUM包括在变道达尔和计算隐式保留运行总数。

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

-1

我想强化@Reeze回答,注意sum声明和sum函数。

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

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

Sum声明是指利用求和变量自动保留形式:a + b

他们的方式类似,它们都可以处理缺失值好。

+0

它们处理缺失值的方式不同。 – vashts85