SAS宏中%if%else和if else的区别
data a;
set x;
%do m=1 %to 3;
%do q=1 %to 5;
if x&q^="nan" and &m=id and x&q="&&id&m&q" then do;
&&id&m&q=1;
put '有值 且id相等' id= x&q= &&id&m&q=;
end;
上面代码是正常的if else语句,它可以把变量转变成数值,就是说x&q可以代表x1-x5,但是if语句是把变量解读成值,即id=1时x1=‘张三’,字符串张三。
可以了看到x&q^=“nan”,没有x变量等于nan的。说明if语句把变量解读成了值。
接下来看%if代码。
%do m=1 %to 3;
%do q=1 %to 5;
%if x&q=nan %then %do;
&