如何在SAS中使用求和函数
How to use sum function in SAS
我认为还有其他方法可以对所有单元格求和。我只想学习如何使用求和函数。请给我一些关于 SAS 中程序后的“sum(y)”的建议。
data dt00;
input X Y @@;
cards;
1 3 2 5
;
run;
data dt01;
set dt00;
z+x+sum(y);
run;
沿行求和 - 求和和数组。
使用求和函数:
data want;
set dt00;
sum=sum(x, y);
run;
您也可以使用 sum=sum(of _numeric_);
- 这将对所有数字列求和,以防太多而无法列出。
使用数组:
data want;
set dt00;
array s {*} _numeric_;
sum=sum(of s[*]);
run;
沿列求和 - 这里我们只对列的总和感兴趣,所以我们 select 最后一行。您可以结合使用 set 语句中的 end=
选项和 if 语句。
data want;
set dt00 end=eof;
sum_x + x;
sum_y + y;
if eof then output;
keep sum:;
run;
如果您有很多列,我建议您使用其他 SAS 程序(例如使用 means 程序)计算列总数。
proc means data=dt00 noprint;
var _numeric_;
output out=want(drop=_type_ _freq_) sum= / autoname;
run;
对所有单元格求和 - 这里我们使用与沿列求和相同的技巧,因为我们只对所有单元格的总和感兴趣。
data want;
set dt00 end=eof;
sum + x + y;
if eof then output;
keep sum;
run;
求和语句sum + x + y
表示自动保留求和变量,所有缺失值均视为0。
简而言之,这相当于
data want;
set dt00 end=eof;
retain sum;
sum = sum(sum,x,y);
if eof then output;
keep sum;
run;
我认为还有其他方法可以对所有单元格求和。我只想学习如何使用求和函数。请给我一些关于 SAS 中程序后的“sum(y)”的建议。
data dt00;
input X Y @@;
cards;
1 3 2 5
;
run;
data dt01;
set dt00;
z+x+sum(y);
run;
沿行求和 - 求和和数组。
使用求和函数:
data want;
set dt00;
sum=sum(x, y);
run;
您也可以使用 sum=sum(of _numeric_);
- 这将对所有数字列求和,以防太多而无法列出。
使用数组:
data want;
set dt00;
array s {*} _numeric_;
sum=sum(of s[*]);
run;
沿列求和 - 这里我们只对列的总和感兴趣,所以我们 select 最后一行。您可以结合使用 set 语句中的 end=
选项和 if 语句。
data want;
set dt00 end=eof;
sum_x + x;
sum_y + y;
if eof then output;
keep sum:;
run;
如果您有很多列,我建议您使用其他 SAS 程序(例如使用 means 程序)计算列总数。
proc means data=dt00 noprint;
var _numeric_;
output out=want(drop=_type_ _freq_) sum= / autoname;
run;
对所有单元格求和 - 这里我们使用与沿列求和相同的技巧,因为我们只对所有单元格的总和感兴趣。
data want;
set dt00 end=eof;
sum + x + y;
if eof then output;
keep sum;
run;
求和语句sum + x + y
表示自动保留求和变量,所有缺失值均视为0。
简而言之,这相当于
data want;
set dt00 end=eof;
retain sum;
sum = sum(sum,x,y);
if eof then output;
keep sum;
run;