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

SAS:自动将变量从proc reg传递到proc score,sas,regression,procedure,Sas,Regression,Procedure,我正在运行包含proc reg和proc score的序列的多个迭代。如何在proc分数中将预测值从proc reg自动传递到var列表?我知道在proc reg中,outest输出一个包含所有变量的数据集,其中预测器填充有估计值。在该数据集中,非预测值缺少一个值。proc reg是否允许一种简单的方法仅捕获预测变量 谢谢 一种方法是使用宏变量 %let varlist = x1 x2 x3 x4; proc reg data = somedata outest = out; mode

我正在运行包含proc reg和proc score的序列的多个迭代。如何在proc分数中将预测值从proc reg自动传递到var列表?我知道在proc reg中,outest输出一个包含所有变量的数据集,其中预测器填充有估计值。在该数据集中,非预测值缺少一个值。proc reg是否允许一种简单的方法仅捕获预测变量


谢谢

一种方法是使用宏变量

%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语句中使用该列表。这种方法假设在最外层的数据集中只有一个模型。但如果确实是这样,最外层数据集中的预测变量不应该有任何缺失值。

能否提供示例代码,给出最外层=数据集中缺失的值?