繁体   English   中英

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

[英]Difference between SUM statement and sum variable in 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;

看来两者都称为SUM语句。 一个是数据集SUM语句,第二个是Proc Print Sum语句。 但是,它们的操作确实不同。

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

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

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

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

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

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;

您可以调用第一个程序来计算累计金额,每条记录的总和是当前记录的薪水和以前记录的薪水总和,最后一条记录,总和是所有记录的薪水总和。 在第二个程序中,您只会得到所有记录的薪水总和。

我想通过关注sum语句和sum函数来增强@Reeze答案。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM