【问题标题】:How to use vars in lm in an own function?如何在自己的函数中使用 lm 中的变量?
【发布时间】:2019-04-22 12:46:00
【问题描述】:

我想编写一个函数,它根据输入计算线性回归。

我可以构建函数,但是当我调用它时(例如myregression(i1,i2)会导致错误)

myregression <- function(input1, input2) {
   model <- lm(data = trainData, example ~ input1 + input2)
}

如何使用函数lm中的输入?

【问题讨论】:

  • 你可能需要paste0("example ~", input1, " + ", input2)并使用myregression("i1", "i2")
  • 另一种方法假设input1input2 是给出trainData 中列名称的字符串是lm(trainData[c("example", input1, input2)])

标签: r


【解决方案1】:

在函数内部,我们可以使用paste来创建公式

myregression <- function(input1, input2) {
    model <- lm(data = trainData, paste0("example ~", input1, " + ", input2))
     }

或者另一个选项是reformulate

myregression <- function(input1, input2) {
      model <- lm(data = trainData, reformulate(c(input1, input2), "example"))
  }

并将函数调用为

myregression("i1", "i2")

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2021-03-03
    相关资源
    最近更新 更多