Я подгоняю некоторые экспоненциальные данные, используя 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
не выполнит ...
Есть идеи?
Спасибо, Нико