SAS数据步骤中DO循环中的动态控制流程

时间:2016-11-07 17:09:44

标签: sas

这里的内部循环(标有********)是否正常,还是需要使用%eval()? (我认为我不需要%eval(),因为没有宏变量。)

do _i = 1 to 5;
   if sp_id_array{_i} ne . then do;
      do _j = (_i+1) to 5; *********;
         if sp_id_array{_j} ne . then do;
            sp_id = sp_id_array{_i};
            sp_partner_id = sp_id_array{_j};
            output;
         end;
      end;
   end;         
end;

1 个答案:

答案 0 :(得分:0)

那没关系; SAS将自动使用(_i+1)。实际上,您可以在循环内修改循环控制变量。

data _null_;
  do _i = 1 to 5;
    put _i=;
    _i=5;
  end;
run;