[英]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.