%let var_list = n1 n2 n3;
data A;
call streaminit(123); /* set random number seed */
do i = 1 to 100;
n1 = rand("Normal");
n2 = rand("Normal");
n3 = rand("Normal");
output;
end;
run;
假设我想基于 marco 变量 "&var_list" 过滤数据集,过滤宏变量中每个值都大于 0 的所有数据。我应该如何编写宏?
感谢您的帮助!
您的意思是要查找 N1、N2 和 N3 均为正数的记录吗?
data want ;
set have ;
if nmiss(of n1 n2 n3)=0 and min(of n1 n2 n3)>0;
run;
转换为使用宏变量。
%let varlist=n1 n2 n3;
data want ;
set have ;
if nmiss(of &varlist)=0 and min(of &varlist)>0;
run;