Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R SAS:如何将所有数据集变量包含到模型中_R_Sas_Regression - Fatal编程技术网

R SAS:如何将所有数据集变量包含到模型中

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'

我想知道SAS是否可以将所有数据集变量都包含到回归模型中,而不必全部键入它们。我以前用过R,我想要的是:

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
语句确实允许此操作),但它不起作用,因为因变量会作为自变量包含进来。这就是我要做的。如上所述,您需要从列表中排除因变量