R

时间:2019-11-25 20:34:18

标签: r slice lm

我有一个数据集(mydata),其中有1000条记录(行)和20个变量(列,x1 .... x20)。第一列是我的响应变量(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
  

错误-变量“预测变量”的类型(列表)无效。

有没有解决的办法?感谢您的协助。

1 个答案:

答案 0 :(得分:1)

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

lm(y~ ., data = mydata)

如果还有'x \ d +'以外的列

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

带有mtcars

的可复制示例
lm(mpg ~ ., data = mtcars)