如何使用SAS有效地执行多个操作

时间:2016-04-08 11:15:42

标签: sas

任何人都可以教我如何更有效地重写以下命令。基本上,如果满足某个条件,我想执行多个操作。

data a;
set a;
if var1 > 5 then var2 = 5;
if var1 > 5 then var3 = 5;
if var1 > 5 then var4 = var1;
run;

我知道我可以将其改写如下。但是有没有更有效的方法来做到这一点。

Data a;
set a; 
if var> 5 then do;
var2 = 5; var3= 5; var4 = var1;
end;
run;

1 个答案:

答案 0 :(得分:0)

如果它产生任何可衡量的性能差异,我会感到惊讶,但如果你只有一个条件代码块并且你真的很讨厌分号,你可以使用return而不是{{1}阻止:

do-end

当SAS到达Data a; set a; if var <= 5 then return; var2 = 5; var3= 5; var4 = var1; run; 语句时,它会跳过逻辑的其余部分,用于数据步骤的当前迭代,然后在那里输出(除非您使用了明确的return语句某处......),(在这个简单的场景中)直接进入数据步骤的下一次迭代。

一般而言,这种方法与goto相同,不应在任何情况下使用。