在R中的lm()中键入多个解释变量有捷径吗?

在R中的lm()中键入多个解释变量有捷径吗?,r,regression,linear-regression,shortcut,lm,R,Regression,Linear Regression,Shortcut,Lm,我对R中的lm()函数有疑问。 我知道lm()用于回归建模,我知道可以这样做: lm(response ~ explanatory1 + explanatory2 + ... + explanatoryN, data = dataset) 现在我的问题是:“假设N很大,有没有一条捷径可以让我不用写所有N变量名?” 提前谢谢 编辑:我遗漏了我真正需要答案的问题的很大一部分。假设我想删除1到k解释变量,并且只包含这些变量中的n-k。您可以使用 lm(response~,data=data)您可以使

我对R中的
lm()
函数有疑问。 我知道
lm()
用于回归建模,我知道可以这样做:

lm(response ~ explanatory1 + explanatory2 + ... + explanatoryN, data = dataset)
现在我的问题是:“假设
N
很大,有没有一条捷径可以让我不用写所有
N
变量名?”

提前谢谢


编辑:我遗漏了我真正需要答案的问题的很大一部分。假设我想删除
1
k
解释变量,并且只包含这些变量中的
n-k

您可以使用


lm(response~,data=data)

您可以使用点符号选择所有变量,只需使用减号选择不应用作预测值的变量

lm(Sepal.Length ~ .-Species -Petal.Length, iris)

Call:
lm(formula = Sepal.Length ~ . - Species - Petal.Length, data = iris)

Coefficients:
(Intercept)  Sepal.Width  Petal.Width  
 3.4573       0.3991       0.9721  

您可以使用点
lm(response~,data=dataset)

使用mtcars数据集的示例(已在R中)


以mtcars
mtcars
为例:

我会捕捉预测因素。我坚持使用一个基本示例,但是可以将regex与
grep一起使用,并保持相同的逻辑(见下文)。除第一列(“mpg”)外,我正在使用所有列


是的:数据集中是否有不需要的解释性变量?如果您有大量的变量,其中包括许多和排除了许多,您可以尝试利用列名中的规则性。例如,
lm(重新格式化(paste0(“解释性”,1:5),“响应”),data=dataset)
@onyanbu我的道歉。对我编辑了我的问题!就这样!非常感谢你!
ex = lm(mpg~., data = mtcars)
summary (ex)
predictors <- names(mtcars)[-1] 
# [1] "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear" "carb"

myFormula <- paste("mpg ~ ", paste0(predictors, collapse = " + "))
# [1] "mpg ~  cyl + disp + hp + drat + wt + qsec + vs + am + gear + carb"

lm(data = mtcars, formula = myFormula)
predictors <- grep(x = names(iris), pattern = "Petal", value = TRUE)
#[1] "Petal.Length" "Petal.Width" 

myFormula <- paste("Sepal.Width ~ ", paste0(predictors, collapse = " + "))
# [1] "Sepal.Width ~  Petal.Length + Petal.Width"

lm(data = iris, formula = myFormula)