使用公式中使用的参数创建函数

时间:2019-04-03 08:03:43

标签: r

我是函数创建的初学者,可能在一些基本的东西上遇到了麻烦。

我想创建一个以data.frame和变量名作为参数的函数,并返回其他变量对该变量的线性回归(这样做毫无意义,我只是在尝试学习如何创建函数)

UIBezierPath

但我收到此错误:

  

eval(predvars,data,env)中的错误:找不到对象'price'”

谢谢您的帮助,对不起英语不好

1 个答案:

答案 0 :(得分:0)

一种解决方案是将price作为char传递,并使用formula()lm的适当对象中转换字符串。

my_lm <- function(df, var) {
  f = formula(paste0(var, "~.")) # this creates "price ~ ." in the example
  lm(f, data = df)
}

my_lm(diamonds, var="price")

或者,如果必须将price传递为“不是字符串”,则需要NSE

my_lm <- function(df, var) {
  var = substitute(var)
  f = formula(paste0(var, "~."))
  lm(f, data = df)
}

my_lm(diamonds, var=price)