我是函数创建的初学者,可能在一些基本的东西上遇到了麻烦。
我想创建一个以data.frame和变量名作为参数的函数,并返回其他变量对该变量的线性回归(这样做毫无意义,我只是在尝试学习如何创建函数)
UIBezierPath
但我收到此错误:
eval(predvars,data,env)中的错误:找不到对象'price'”
谢谢您的帮助,对不起英语不好
答案 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)