我想执行一些回归,我想要计算每个变量的nonmissing观测数。但我不知道我将使用哪个变量。我想出了下面的解决方案,它不起作用。任何帮助?Sas宏与proc sql
这里基本上我把我的每个解释变量都放在变量中。例如 var1 var 2 - > w1 = var1,w2 = var2。
请注意,我不知道我有多少变量,所以我留下了十个变量的空间。
然后使用symput存储潜在变量。
data _null_;
cntw=countw(¶meters);
i = 1;
array w{10} $15.;
do while(i <= cntw);
w[i]= scan((¶meters"),i, ' ');
i = i +1;
end;
/* store a variable globally*/
do j=1 to 10;
call symput("explanVar"||left(put(j,3.)), w(j));
end;
run;
我的下一步是使用我存储的变量执行proc sql。如果我的变量少于10个,它不起作用 。
proc sql;
select count(&explanVar1), count(&explanVar2),
count(&explanVar3), count(&explanVar4),
count(&explanVar5), count(&explanVar6),
count(&explanVar7), count(&explanVar8),
count(&explanVar9), count(&explanVar10)
from estimation
;quit;
此代码可以使用少于10个变量吗?
非常感谢。我没有考虑proc的意思,我会记住你的建议。你的第三个选项似乎很有趣,但我承认我没有理解它。你能更具体地说明你将如何使用这种方法吗? – DJJ
你必须问一个更具体的问题。我为第三个选项发布的是完全实现第三个选项(除了它需要数据集“参数”)。 – Joe