根据一个变量

时间:2018-04-12 20:15:04

标签: sas

是否有更简化的方法来实现这一目标?这是一个简化的例子。在实际情况中,存在> 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;

1 个答案:

答案 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;