R脚本问题 - is.na告诉我条件有长度> 1

时间:2011-08-20 23:07:49

标签: r nls

在我的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 个答案:

答案 0 :(得分:3)

如果拟合失败,

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;
}