SAS中的IN子句
我有以下数据集SAS中的IN子句,sas,Sas,我有以下数据集 data a; input id stat$; datalines; 10 a 20 a 10 t 40 t ; run; 我正在写下面的宏 %macro ath(inp); data _null_; set a (where=(id=&inp); ----if any one of the status of ID is 'a' then put 'valid'; else put 'invalid';---- %mend; 我是SAS的初学者。请帮我写下的语法
data a;
input id stat$;
datalines;
10 a
20 a
10 t
40 t
;
run;
我正在写下面的宏
%macro ath(inp);
data _null_;
set a (where=(id=&inp);
----if any one of the status of ID is 'a' then put 'valid';
else put 'invalid';----
%mend;
我是SAS的初学者。请帮我写下的语法-如果ID的任何一个状态是'a',那么把'valid';else put'invalid'看起来您希望扫描输入数据中的所有(选定)行,并测试其中是否有
ID='a'
。在子句中不能使用;这是针对每行的一组值进行测试,而不是针对所有行的一个值进行测试
data _null_;
set a (where=(id = &inp);
if id = 'a' then do;
put 'valid';
stop;
end;
run;
因为这里有一个where
语句,所以您选择的所有id肯定都是有效的?也就是说,您正在选择id=&inp
所在的所有行,因此如果您的变量&inp='a'
,则新数据集的所有行都将有效。对不起,我错过了一些东西