我有一个for循环,它看起来像这样:
for (ID in rownames(countDF)) {
avector <- as.vector(as.numeric(countDF2[rownames(countDF2)==ID,]))
nbfit <- fitdistr(avector,'negative binomial')
}
因此,我想为每个ID计算fitdistr
函数。但是问题在于,对于某些ID,该功能无法正常工作并引发错误。在这里:
统计信息中的错误:: optim(x = c(0,0,0,0,0,0,0,0,0,0,0,0,0,: 非有限有限差分值[2]
我想以某种方式跳过这些ID,然后继续使用其他ID。
我发现了一个函数try,但是我不明白它是如何工作的。 我已经这样尝试过了:
nbfir <- try(fitdistr(avector,'negative binomial'))
但是循环仍然因错误而中断。 我该怎么解决?
答案 0 :(得分:2)
您可以使用tryCatch
并且在捕获错误时不执行任何操作。
for (ID in rownames(countDF)) {
avector <- as.vector(as.numeric(countDF2[rownames(countDF2)==ID,]))
tryCatch(
nbfit <- fitdistr(avector,'negative binomial'),
error = function(e) {})
}