我正在使用一些指数数据nls.
我正在使用的代码是:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
Run Code Online (Sandbox Code Playgroud)
expFit 被定义为
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
Run Code Online (Sandbox Code Playgroud)
这适用于我的大多数数据,其中提供的起始参数(100,-3和0)运行良好.但有时,我的数据与这些参数不相符,而且我得到错误nls(例如"奇异梯度"或类似的东西).我如何"捕获"这些错误?
我试着做点什么
fit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为nls似乎停止执行和后面的代码nls将不会执行...
有任何想法吗?
谢谢你