【问题标题】:Is there a short cut to typing multiple explanatory variables in lm() in R?在 R 的 lm() 中键入多个解释变量是否有捷径?
【发布时间】:2018-04-19 22:17:29
【问题描述】:

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

lm(response ~ explanatory1 + explanatory2 + ... + explanatoryN, data = dataset)

现在我的问题是:“假设N 很大,是否有一个我可以使用的捷径,而我不必编写所有N 变量名?”

提前致谢!

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

【问题讨论】:

  • 数据集中是否存在不需要的解释变量?
  • 如果您有大量变量,其中包含许多变量,排除了许多变量,您可以尝试利用列名中的规律性。例如,lm(reformulate(paste0("explanatory", 1:5), "response"), data=dataset)。
  • @Onyambu 我很抱歉。是的!我编辑了我的问题!

标签: r regression linear-regression shortcut lm


【解决方案1】:

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

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  

【讨论】:

  • 就是这样!非常感谢!
【解决方案2】:

以mtcars为例:

我会捕获预测变量。我坚持一个基本示例,但可以将正则表达式与grep 一起使用并保持相同的逻辑(见下文)。我正在使用除第一列(“mpg”)之外的所有列。

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)

正则表达式示例

以iris 为例。我想匹配所有包含“花瓣”的列名。

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)

【讨论】:

    【解决方案3】:

    您可以使用.

    lm(response~., data = data)

    【讨论】:

      【解决方案4】:

      你可以只用一个点lm(response ~ ., data= dataset)

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

      ex = lm(mpg~., data = mtcars)
      summary (ex)
      

      【讨论】:

        猜你喜欢
        • 2022-07-27
        • 1970-01-01
        • 1970-01-01
        • 2018-08-29
        • 2021-03-31
        • 2020-10-02
        • 1970-01-01
        • 2020-08-14
        相关资源
        最近更新 更多