我想执行一些回归,我想计算每个变量的非缺失观察数。但我还不知道我将使用哪个变量。我想出了以下不起作用的解决方案。有什么帮助吗?
这里基本上我把我的每一个解释变量都放在变量中。例如 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 个变量吗?