是否有更简化的方法来实现这一目标?这是一个简化的例子。在实际情况中,存在> 10个var
值,每个值都需要自己的数据集。
data
new1
new2
new3;
set old;
if var = 'new1' then output new1;
else if var = 'new2' then output new2;
else if var = 'new3' then output new3;
run;
答案 0 :(得分:0)
这应该可行。您只需将%更改为5到10(最大新数字)。 @Reeza提出的观点很棒。我也会看看那篇文章,因为这是一个重要的建议。通常这不是处理数据的好方法,但这应该可以帮到你。
data have;
input var $;
datalines;
new1
new2
new3
new4
new5
;
run;
*实际代码从此处开始;
%macro splitting;
%do i=1 %to 5;
%put "new&i";
proc sql;
create table table&i as
select *
from have
where var contains "new&i";
quit;
%end;
%mend splitting;
%splitting;