我是SAS的新手,想知道SAS中“ IF-THEN ”和“ IF-THEN-DO ”语句之间的区别是什么?
答案 0 :(得分:2)
简化你可以说,如果那时是一个语句,那么如果那样做一个语句块。如果在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;
答案 1 :(得分:2)
SAS在IF-THEN语句中计算表达式,以产生非零,零或缺失的结果。非零和非缺失结果导致表达式为真;零或缺失的结果导致表达式为假。
如果满足IF子句中指定的条件,则IF-THEN语句对从SAS数据集读取的观察值,外部文件中的记录或计算值执行SAS语句。如果未执行THEN子句,则可选的ELSE语句会提供替代操作。如果使用ELSE语句,则必须紧跟IF-THEN语句。
使用没有ELSE语句的IF-THEN语句会导致SAS评估所有IF-THEN语句。将IF-THEN语句与ELSE语句一起使用会导致SAS执行IF-THEN语句,直到遇到第一个true语句。不评估后续的IF-THEN语句。 (来源:support.sas.com)
DO语句是DO组处理的最简单形式。 DO和END语句之间的语句称为DO组。您可以在DO组中嵌套DO语句。
在IF-THEN / ELSE语句中经常使用简单的DO语句来指定要执行的一组语句,具体取决于IF条件是真还是假。 (来源:support.sas.com)
此致 瓦西里