我正在编写一个函数,它允许尝试许多起始参数组合来拟合非线性回归,因为nlsList()
只允许一组起始参数。
我已经做到了这一点,但想在函数中添加一个预测数据框,以便于绘制以比数据供应更小的 x 增量返回最佳拟合曲线。例如,使用 100 个点而不是 10 个点来实现平滑的预测曲线。
在我的函数参数中,我将公式指定为参数,并且对待是函数中的公式。一些公式包括一个我为包含非线性关系而制作的函数。然后我使用do.call(function, new.starting params)
将预测参数传递到预测数据帧。
我还没有找到一种将任何已定义和固定变量从函数隔离并传递给函数的do.call()
方法。
有没有办法获得公式中定义的值?所以在这个例子中 Tc = 25...
model = y ~ schoolfield.high(ln.c, Ea, Eh, Th, temp = x, Tc = 25)
formula <- as.formula(model)
vars <- all.vars(formula[[3]])
这返回:
"ln.c" "Ea" "Eh" "Th" "x"
我想知道是否有办法将定义的变量与公式对象隔离开来,或者是否有其他方法可以做到这一点?