我正在使用nls
来拟合一些指数数据。
我使用的代码是:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
expFit
的定义如下:
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
对于大多数数据,初始参数(100、-3和0)表现良好。但有时候,我的某些数据与这些参数不兼容,会导致
nls
出错(例如“奇异梯度”等)。我该如何“捕捉”这些错误?我尝试了以下方法:
fit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
但这样做行不通,因为
nls
似乎会停止执行,nls
后面的代码将不会执行...有什么想法吗?谢谢nico
try
命令很有用,但我期望在你的帖子第四行看到一个nls调用,并且对出现在那里的nul函数不熟悉。在这里进行快速搜索没有帮助我找到nul的作用。你有什么提示可以告诉我在哪里找到更多信息吗?也许我不知道应该要求哪个包? - Jason Whytetry(fit <- nls(...))
,当nls
出现错误时,fit
将为 NULL。 - kohske