我将尝试用一个例子来解释这个:我希望用f1
之类的函数最小化函数nlm
,同时我想将一些参数传递给{{1从参数列表中。
在简单的情况下,这两个工作和最小化功能
nlm
然后,如果我希望将列表f1 <- function(x, vec) x^2 +sum(vec)
nlm(f = f1, p = 0.2, vec = 1)
nlm(f = f1, p = 0.2, vec = c(1,1))
传递给opt_pars
,我通常会这样做
nlm
然而,问题是如果opt_pars <- list(hessian = TRUE)
do.call(what = nlm, args = c(f = f1, p = 0.2, vec = 1, opt_pars))
实际上是一个向量,这不起作用:
vec
在我看来,这是因为do.call(what = nlm, args = c(f = f1, p = 0.2, vec = c(1,1), opt_pars))
将c()
拆分为两个向量:
vec
处理这个问题的好方法是什么?