SAS:IF-THEN和IF-THEN-DO状态之间的差异?

SAS:IF-THEN和IF-THEN-DO状态之间的差异?,sas,Sas,我是SAS的新手,想知道SAS中“IF-THEN”和“IF-THEN-DO”语句的区别是什么?简化您可以说,IF-THEN是一个语句,IF-THEN-DO是一个语句块。如果在Datastep中使用If-without-then,则会阻止特定集合的输出 例如: 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

我是SAS的新手,想知道SAS中“IF-THEN”和“IF-THEN-DO”语句的区别是什么?

简化您可以说,IF-THEN是一个语句,IF-THEN-DO是一个语句块。如果在Datastep中使用If-without-then,则会阻止特定集合的输出

例如:

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;

SAS对IF-THEN语句中的表达式求值,以生成非零、零或缺失的结果。非零且非消去的结果导致表达式为真;结果为零或缺失将导致表达式为false

如果满足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)

问候,,
Vasilij

你试过用谷歌搜索它吗?你看过文档了吗?