我正在运行包含proc reg和proc得分的多个序列交互。如何在proc得分中自动将proc reg中的预测变量传递给var list?我知道在proc reg中,outest输出一个数据集,其中包含所有变量,其中预测变量填充了估计值。在该数据集中,非预测变量具有缺失值。 proc reg是否允许一种简单的方法来捕获预测变量?
谢谢!
答案 0 :(得分:1)
解决这个问题的一种方法是使用宏变量。
%let varlist = x1 x2 x3 x4;
proc reg data = somedata outest = out;
model y = &varlist;
run;
quit;
data _null_;
length newvars $ 2000;
set out;
array v{*} &varlist;
do i = 1 to dim(v);
if v[i] ne . then newvars = catx(" ", newvars, vname(v[i]));
end;
call symputx("newvars", newvars);
run;
%put Predictors=&newvars;
proc score data = somedata;
var &newvars;
run;
这将从PROC REG创建一个以空格分隔的预测变量列表,并在PROC SCORE的VAR语句中使用该列表。此方法假设您的OUTEST数据集中只有一个模型。但如果确实如此,那么OUTEST数据集中的预测变量不应该有任何缺失值。