R: ловить ошибки в `nls`

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

Есть идеи?

Спасибо нико

Ответы на вопрос(1)

Ваш ответ на вопрос