首页 > 解决方案 > 无法将变量传递给R中的函数

问题描述

我正在尝试拟合数据框列表,但我无法弄清楚为什么我不能在函数之外定义 conc 和 t0 。

如果我这样做,我会收到错误:

'nls.multstart::nls_multstart 中的错误(y ~ fit_drx_mono(assoc_time, t0, : 参数起始边界必须与参数一样多)

conc <- 5e-9
t0 <- 127

nls.multstart::nls_multstart(y ~ fit_mono(assoc_time, t0, conc, kon, koff, ampon, ampoff),
                             data = data_to_fit,
                             iter = 100,
                             start_lower = c(kon = 1e4, koff = 0.00001, ampon = 0.05, ampoff = 0),
                             start_upper = c(kon = 1e7, koff = 0.5, ampon = 0.6, ampoff = 0.5),
                             lower = c(kon = 0, koff = 0, ampon = 0, ampoff = 0))

当我在函数中指定值时,一切都按预期工作。我不明白为什么。

标签: r

解决方案


事实证明,我无法定义data = data_to_fit,否则该函数仅在该数据框中查找变量。一旦我在函数之外定义了每个变量而不指定data它就可以工作。


推荐阅读