我想为从作为参数传递给函数的数据帧中的任意变量拟合统计模型(例如线性模型)。
E.g。
myLm = function(x,y) {
fit = lm(y~x, data=mtcars)}
myLm("cyl","mpg")
但这不起作用。 我该如何正确地做到这一点?
答案 0 :(得分:4)
您必须将formula
对象传递给lm
函数。但是您在characters
的输入中提供了myLM
。
您可以通过这种方式更改功能
myLm = function(x,y) {
fit = lm(formula(paste(x,"~",y)), data=mtcars)
}
myLm("cyl","mpg")
您仍然提供characters
输入,但它们会在您的函数myLM
答案 1 :(得分:2)
为什么不直接传递公式对象:
myLm <- function(f)
lm(f, data=mtcars)
myLm(mpg ~ cyl)