gpt4 book ai didi

R : catching errors in `nls`

转载 作者:行者123 更新时间:2023-12-04 14:06:57 27 4
gpt4 key购买 nike

我正在使用 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 之后的执行和代码不会执行...

有任何想法吗?

谢谢
尼科

最佳答案

我通常使用这个技巧:

params<-... # setup default params.

while(TRUE){

fit<-NULL
try(fit<-nls(...)); # does not stop in the case of error

if(!is.null(fit))break; # if nls works, then quit from the loop

params<-... # change the params for nls

}

关于R : catching errors in `nls` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com