这里的内部循环(用********标记)是可以的,还是我需要使用%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;
没关系;SAS将自动使用(_i+1
)。实际上,您可以在循环中修改循环控制变量本身。
data _null_;
do _i = 1 to 5;
put _i=;
_i=5;
end;
run;