[英]How to create multiple datasets in SAS using loops
proc iml;
use rdata3;
read all var _all_ into pp;
close rdata3;
do i = 1 to 1050;
perms = allperm(pp[i, ]);
create pp&i from perms[colname= {"Best" "NA1" "NA2" "Worst"}];
append from perms;
close pp&i;
end;
我想通過do循環使用上述代碼在SAS中創建多個數據集。 但是,我似乎無法使用&i指示器更改每個數據集的名稱。 誰能幫助我更改代碼以允許我創建多個數據集? 還是還有其他選擇如何從矩陣到循環創建多個數據集? 提前致謝。
您不想使用宏變量,而想要使用IML的功能。 但是,您將創建大量的數據集。
data rdata3;
x = 1;
y = 2;
a = 4;
b = 5;
output;
output;
run;
proc iml;
use rdata3;
read all var _all_ into pp;
close rdata3;
do i = 1 to nrow(pp);
outname = cats('pp',putn(i,'z5.'));
perms = allperm(pp[i, ]);
create (outname) from perms[colname= {"Best" "NA1" "NA2" "Worst"}];
append from perms;
close (outname);
end;
quit;
您可以將ID變量添加到PERMS,並將PERMS的所有版本附加到一個數據集中。 我不確定我是否使用了最佳的IML技術,但我知道足夠多的IML才是危險的。
proc iml;
use rdata3;
read all var _all_ into pp;
close rdata3;
perms = j(1,5,0);
create PP_out from perms[colname= {'ID' "Best" "NA1" "NA2" "Worst"}];
do i = 1 to nrow(pp);
perms = allperm(pp[i, ]);
perms = j(nrow(perms),1,i)||perms;
append from perms;
end;
close PP_out;
quit;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.