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)
我有一个包含 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)