使用作为参数传递给R函数的dataframe变量名

时间:2014-02-26 09:10:21

标签: r function dataframe

我想为从作为参数传递给函数的数据帧中的任意变量拟合统计模型(例如线性模型)。

E.g。

myLm = function(x,y) {
    fit = lm(y~x, data=mtcars)}
myLm("cyl","mpg")

但这不起作用。 我该如何正确地做到这一点?

2 个答案:

答案 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)