我似乎無法找到這個網上資料...SAS執行循環的一個Proc步驟
我的變量我想要做一個總結PROC名單。由於這些proc摘要是針對每個變量單獨執行的,因此如果我可以找到一些方法來循環變量列表,然後創建一個輸出爲excel或僅僅是一個結果組合表,這些結果清楚地表明結果屬於哪個到什麼變量。
問題是我只知道在一個datastep中循環工作,我將如何得到這個爲proc步驟工作?我可以寫一個proc步驟的宏,然後將它嵌入到一個datastep中?這會導致它正常運行嗎?即
data _NULL_;
set table_of_vars;
do i=1 to (number of vars in the table);
_n_ = i;
%let var = _n_;
%macro_proc_summ(&var.);
end;
和隨後的另一個代碼合併單個輸出,或者宏也可能產生總是附加信息的輸出。
很明顯,代碼很粗略,但從概念上可以工作?
編輯:爲了更清楚一點,這是代碼看起來像沒有循環的地方。
%macro Analysis(var); %macro _; %mend _;
proc summary data=masterdata nway missing;
class &var.;
output out = &var._summ (drop = _type_);
run;
%mend;
endrsubmit;
%Analysis(var1);
%Analysis(var2);
%Analysis(var3);
.
.
.
.
%Analysis(var100);
從這裏我們既可以:
- 出口var1_summ,var2_summ到Excel單元格A1,D1等
- 還是第一次我們每一個人的總結合併成一張大桌子,然後導出到 一些圖形應用程序來觀察趨勢。
無論哪種方式,你可以看到這些是單獨的Proc步驟,這可以在循環中更快地完成。
您可以一次傳遞多個變量PROC總結和產生的組合輸出。你根本不需要一個宏。 – Reeza
@Reeza - 我覺得呢?我想「分類」一堆變量,並在單步完成時,輸出不會唯一地組合變量內的各個級別......例如,Var1可以是Shoes,而Var2可以是Shirt,並且它們會If我將它們全部列在一個總結中,它將奇怪地合併信息...... – Wolfspirit
你將如何處理數字和字符變量?您必須以某種方式處理它們,以便您可以將它們堆疊起來。聽起來你想要表1報告文件 - 總結?如果是這樣,你應該搜索lexjansen.com上有很多例子。否則,請使用call execute循環訪問值。特別是如果參數在您的數據集中。 – Reeza