Я запускаю симуляции в R, в для. На каждом шаге цикла, я пытаюсь соответствовать бета-биномиальное распределение с использованием vglm функцию VGAM пакета:R - Перейти к следующему шагу в цикле, когда ошибка
vglm(data ~ 1, betabinomial)
Однако для некоторых из моих сгенерированных данных, бета-биномиальной модели будет не подходит и функция сработает. Поскольку он выходит из строя, R выходит из цикла и останавливается. Я хотел бы просто перейти к следующему шагу в цикле. Я знаю о функции tryCatch, но не смог использовать ее в моем случае. На данный момент мой код выглядит следующим образом (обратите внимание, что для цикл вложен в другой для цикла):
for (i in 1:nsimu) {
## Some code to generate Pos and Neg
data <- cbind(Pos,Neg)
if (sum(Pos)==0) {
##Go to next step
}
else {
vglm(data ~ 1, betabinomial)
}
}
Большое спасибо за любую помощь или предложения.
Stéphane
+1, очевидно, лучше, что нужно делать. – juba
@juba спасибо. Мне интересно, нужен ли здесь вложенный цикл 'for'. –
Благодаря Саймону и Джубе. Однако моя основная проблема заключается в том, что бывают случаи, когда ** sum (Pos)> 0 ** и модель все еще не подходит (и они не определяются i, они определяются данными, поэтому мне нужно попробовать и сначала подгоните модель). Это те случаи, которые я хочу игнорировать. Что касается вложенного цикла * for *, это для другого параметра. –