2015-07-10 4298 views

回答

2

SAS评估在IF-THEN语句的表达以产生结果要么是非零,零,或丢失。一个非零且非拒绝的结果会导致表达式为真;零或缺失的结果导致表达式为假。

如果符合在IF子句中指定的条件,则IF-THEN语句将执行SAS语句,用于从SAS数据集中读取的观察值,外部文件中的记录或计算值。如果不执行THEN子句,则可选的ELSE语句提供了一个替代操作。 ELSE语句(如果使用)必须紧跟IF-THEN语句。

使用IF-THEN语句而不使用ELSE语句会导致SAS评估所有IF-THEN语句。对ELSE语句使用IF-THEN语句会导致SAS执行IF-THEN语句,直到遇到第一个true语句。后续的IF-THEN语句不会被评估。 (来源:support.sas.com)

DO语句是DO组处理的最简单形式。 DO和END语句之间的语句被称为DO组。您可以在DO组中嵌套DO语句。

在IF-THEN/ELSE语句中,通常使用一个简单的DO语句来指定要执行的一组语句,具体取决于IF条件是真还是假。 (来源:support.sas.com)

问候, 瓦西里

1

简化你可以说,如果那么是一个语句,如果然后做一个语句块。如果您在Datastep中使用if,那么它会阻止特定设置的输出。

实施例:

data x; 

set y; 
if a = 1 then /*one statment is following*/ 
b=2; 

if a = 1 then do; /* a block of statements is follwing till end statement, similar to brackets in other programming languages*/ 
b=2; 
c=3; 
end; 

if a = 1; /*only when a = 1 data will be written to x*/ 

run; 
相关问题