R SAS:如何将所有数据集变量包含到模型中
我想知道SAS是否可以将所有数据集变量都包含到回归模型中,而不必全部键入它们。我以前用过R,我想要的是:R SAS:如何将所有数据集变量包含到模型中,r,sas,regression,R,Sas,Regression,我想知道SAS是否可以将所有数据集变量都包含到回归模型中,而不必全部键入它们。我以前用过R,我想要的是: model <- lm(y ~ ., data = d) model据我所知,SAS没有一种简单的方法来做到这一点 您可以将所有自变量放入宏变量中,然后在模型语句中引用宏变量: proc sql; select name into :ivars separated by ' ' from dictionary.columns where libname eq 'WORK'
model <- lm(y ~ ., data = d)
model据我所知,SAS没有一种简单的方法来做到这一点
您可以将所有自变量放入宏变量中,然后在模型语句中引用宏变量:
proc sql;
select name into :ivars separated by ' '
from dictionary.columns
where libname eq 'WORK' /*library name */
and memname eq 'YOURDATA' /*data set name */
and name ne 'DEPVAR' /*exlude dep variable */ ;
quit;
proc reg;
model DEPVAR = &ivars;
run;
还有一种方法,但我还没有试过
proc reg data=d;
model y = _all_;
run;
由于回归模型在默认情况下只能使用数值变量来构建,所以您可以使用它
proc reg data=d;
model y = _num_;
run;
如果您有字符变量,请将它们转换为证据权重转换变量,以便将它们转换为数字,然后您可以使用上述代码。我认为如果它们都按顺序排列,您可以使用变量列表:例如,firstvar--lastvar
有时您可以使用冒号,如下所示:(drop=\)
将删除所有以下划线开头的变量。在某些情况下,我知道\u all
用于引用所有变量,因此可能值得一试。\u all
将被允许在任何允许变量列表的地方使用(model
语句确实允许此操作),但它不起作用,因为因变量会作为自变量包含进来。这就是我要做的。如上所述,您需要从列表中排除因变量