如何使用在 R 中列为字符串向量的参数构建函数?

How to build a function with arguments listed as a string vector in R?

我如何编写一个接受字符串向量的函数和 returns 一个带有字符串向量名称参数的函数?此外,我想使用我的参数字符串来创建一个 listdata.frame ,该函数以该函数内的输入列命名。我想要的应用程序是能够将其传递给 predict 方法来估计一些点。如果这个功能已经存在,请告诉我。否则,我很好奇我怎么写。下面我包含了 R 伪代码,说明了我正在尝试做的事情,并希望展示我在概念上遇到的困难。

make_fitting_function <- function(mod) {
   x <- xterms(mod)
   function(!! x) {
     predict(mod, newdata = list(!! x))
   }
}

调用此函数returns 一个可以在单独的向量参数上调用的函数。例如:

f <- make_fitting_function(lm(mpg ~ wt, data = mtcars))
f(wt = c(1, 2, 3, 4, 5))

结果将是:

    1     2     3     4     5 
31.94 26.60 21.25 15.91 10.56 

然而,这也适用于更多的 x 变量(例如):

f <- make_fitting_function(lm(mpg ~ wt + am + carb, data = mtcars))
f(wt = c(1, 2, 3, 4, 5), am = rep(1, 5), carb = seq(2, 10, by = 2))

理想情况下,这个函数在单变量的情况下应该可以被integrate使用。

其实你不需要给参数命名;而只是让数据框传入以使用所有这些进行预测。

make_fitting_function <- function(model) {
    function(...) {
        predict(model, newdata=data.frame(...))
    }
}
f <- make_fitting_function(lm(mpg ~ wt + am + carb, data = mtcars))
f(wt = c(1, 2, 3, 4, 5), am = rep(1, 5), carb = seq(2, 10, by = 2))
##         1         2         3         4         5 
## 30.589985 24.637415 18.684846 12.732277  6.779708