R中lm回归中预测变量的编码

coding for predictor variables in lm regression in R

我有一个包含 1000 条记录(行)和 20 个变量(列,x1....x20)的数据集 (mydata)。第一列是我的响应变量 (y)。所有数据都是数字,没有缺失值。

这很好用:

fit <- y ~ x2 + x3 + ..... x20, data = mydata); summary(fit)

我想知道如何避免输入所有变量名(即 x1 + x2 + x3 等)。

我试过:

predictors <- mydata[2:20]
fit <- lm(y ~ mydata[ c(2:20) ]  # as well as mydata[2:20] and predictors

Error - invalid type (list) for variable 'predictors'.

有办法解决这个问题吗?感谢您的帮助。

我们可以使用.来包含所有其他变量

lm(y~ ., data = mydata)

如果还有'x\d+'

以外的列
lm(y ~ ., data = mydata[c('y', grep("^x\d+$", names(mydata), value = TRUE))])

mtcars

的可重现示例
lm(mpg ~ ., data = mtcars)