Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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中添加一大组回归器?_R_Regression - Fatal编程技术网

如何方便地在R中添加一大组回归器?

如何方便地在R中添加一大组回归器?,r,regression,R,Regression,我必须向回归中添加大约30个虚拟变量 如果我的变量名为dummy1-dummy30,我会在STATA中用星号通配符表示。这将是简单的回归y dummy*,STATA将添加所有以“dummy”开头的变量 有没有人能在[R]中提示我一个类似的方便程序,它阻止我写出30个变量名?您有两个选择。子集adata.frame仅包含伪*变量和因变量。在这种情况下,您可以调用lm(dep~,data=your.data)。dot参数将假定您试图使用除dep之外的所有变量作为预测值。 要将data.frame中的

我必须向回归中添加大约30个虚拟变量

如果我的变量名为
dummy1
-
dummy30
,我会在
STATA
中用星号通配符表示。这将是简单的
回归y dummy*
STATA
将添加所有以“dummy”开头的变量


有没有人能在
[R]
中提示我一个类似的方便程序,它阻止我写出30个变量名?

您有两个选择。子集a
data.frame
仅包含伪*变量和因变量。在这种情况下,您可以调用
lm(dep~,data=your.data)
。dot参数将假定您试图使用除
dep
之外的所有变量作为预测值。 要将
data.frame
中的
dep
和预测器子集,可以使用
your.data[grepl(“dep | dummy”,name(your.data)),]

第二个选项是使用粘贴构造公式参数

formula(paste("dep ~", paste("dummy", 1:10, sep = "", collapse = "+")))

函数
reformate
是基于字符串创建公式的正确选项

示例数据帧:

set.seed(1)
dat <- data.frame(y = rnorm(10), 
                  dummy1 = rnorm(10),
                  dummy2 = rnorm(10),
                  dummy3 = rnorm(10),
                  other = rnorm(10))
此公式可用于
lm

lm(form, dat)
# Call:
#   lm(formula = form, data = dat)
# 
# Coefficients:
#   (Intercept)       dummy1       dummy2       dummy3  
# 0.04785      0.09323     -0.63404     -0.19547

y~,data=
谢谢,但是如果我想让它更灵活呢?也就是说,我知道数据帧中有K个虚拟变量,但它们是分散的。我必须指定不需要的精确列数。如果你模拟编码因子变量,你应该知道R回归函数可以为你做到这一点。你可以使用正则表达式对你想要的任何变量进行子集(然后使用
y~。
公式)。这是一个很好的观点,@Roland,让R包含我的变量作为因子。如果我没记错的话:
as.factor()
lm(form, dat)
# Call:
#   lm(formula = form, data = dat)
# 
# Coefficients:
#   (Intercept)       dummy1       dummy2       dummy3  
# 0.04785      0.09323     -0.63404     -0.19547