推 hanjing:感謝,正在嘗試中,因為每一行的指令有點不了解 02/18 21:42
如果你的變項不是順序性的
x1 x2 x3 x4這樣
而是
return value asset 這種情況
則可以試試這樣的方法
data a;
set a.a01;
keep 你想要處理的變項群; /*如果你全部都要處理 就不用這行指令*/
if _n_=1 then output;
run;
proc transpose data=a out=a;
run;
%macro a;
%do i=2 %to 30;
data _null_;
set a;
if _n_=&i then do;
call symput('ss', _name_);
end;
run;
data a.a&i;
set a.a01;
if &ss=0 then delete;
run;
%end;
%mend a;
%a;
這樣就可以達到你要的
不管是 x1 x2 x3 x4這樣的情況
或者是 return asset mv ...這樣的情況都試用
※ 引述《hanjing (心寬念純)》之銘言:
: data a.a02;
: set a.a01
: if var2=0 then delete;
: run;
: data a.a03;
: set a.a01
: if var3=0 then delete;
: run;
: 有沒有指令可以重覆這些動作對a01這個檔
: 刪除不同變數中為0的值,然後另外存成a02和a03這個檔
: 也就是說a02只有刪除var2為0的值,但此時var3仍會有為0的值
: 而
: a03只會刪除var3為0的值,但此表格中的var2仍會有為0的值
: 由於變數達30個左右
: 所以想問有沒有指令可以代替這些重覆的動作
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.45.89
※ 編輯: tew 來自: 125.225.45.89 (02/17 23:49)
※ 編輯: tew 來自: 125.225.45.89 (02/18 00:27)