我認為還有其他方法可以對所有單元格求和。我只想學習如何使用 sum 函式。請給我一些關于“sum(y)”以下 SAS 程式的建議。
data dt00;
input X Y @@;
cards;
1 3 2 5
;
run;
data dt01;
set dt00;
z x sum(y);
run;
uj5u.com熱心網友回復:
沿行求和- 總和和陣列。
使用 sum 函式:
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;
沿列求和——這里我們只對列的總和感興趣,所以我們選擇最后一行。您可以使用end=set 陳述句中的選項和 if 陳述句的組合來執行此操作。
data want;
set dt00 end=eof;
sum_x x;
sum_y y;
if eof then output;
keep sum:;
run;
如果您有很多列,我建議您使用其他 SAS 程式(例如使用均值程式)計算列總數。
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 陳述句sum x y意味著 sum 變數會自動保留,并且所有缺失值都被視為 0。
簡單地說,這相當于
data want;
set dt00 end=eof;
retain sum;
sum = sum(sum,x,y);
if eof then output;
keep sum;
run;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/376164.html
