Вопрос сценария R - is.na говорит мне, что условие имеет длину> 1 - PullRequest
2 голосов
/ 21 августа 2011

В моем скрипте r я выполняю nls для получения значения соответствия:

fit <- nls(...)

, а затем после этого я проверяю, удалось ли nls следующим образом:

if(is.na(fit)) {
  print("succeeded")
}

но я получаю предупреждения:

the condition has length > 1 and only the first element will be used

я делаю это неправильно?если так, что мне делать?если нет, как я могу удалить предупреждение?спасибо!

1 Ответ

3 голосов
/ 21 августа 2011

nls вызывает ошибку, если установка не удалась.Итак, is.null после try(nls(...)) - правильный путь.

- это фрагмент кода, который я использовал при использовании nls, пригодный для неопределенных данных:

fit <- NULL
while (TRUE) {
    start <- list(...) # try somewhat randomized initial parameter
    try(fit <- nls(..., start = start)) # performe nls
    if (!is.null(fit)) break;
}
...