SAS:自动将变量从proc reg传递到proc分数

时间:2014-02-26 18:35:04

标签: sas regression procedure

我正在运行包含proc reg和proc得分的多个序列交互。如何在proc得分中自动将proc reg中的预测变量传递给var list?我知道在proc reg中,outest输出一个数据集,其中包含所有变量,其中预测变量填充了估计值。在该数据集中,非预测变量具有缺失值。 proc reg是否允许一种简单的方法来捕获预测变量?

谢谢!

1 个答案:

答案 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数据集中的预测变量不应该有任何缺失值。