R for цикл перейти к следующей итерации ifelse


92

Предположим, у вас есть такой цикл for

for(n in 1:5) {
  #if(n=3) # skip 3rd iteration and go to next iteration
  cat(n)
}

Как перейти к следующей итерации, если выполняется определенное условие?


8
Вместо того, чтобы пропускать, когда условие выполняется, вы не должны пропускать, когда условие не выполняется -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Ответы:


162
for(n in 1:5) {
  if(n==3) next # skip 3rd iteration and go to next iteration
  cat(n)
}

5
Аккуратно. To OP: см. ?ControlАналогичные функции
MichaelChirico

действительно очень аккуратный ответ , что, если я хочу сделать что-то вроде for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }значения, которое я хочу напечатать, что я собираюсь пропустить третью итерацию, потому что в некоторых случаях нам нужно записывать то, что мы пропустили, чтобы все было управляемым. любые мысли по этому поводу?
Джейсон Гол

1
@Jason Goal - вам понадобятся дополнительные скобки для ifутверждения, например, этоfor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Алексей Ферапонтов

Спасибо @ Alexey Ferapontov, теперь я понимаю, почему в моей старой версии все время выскакивает ошибка «лишняя скобка».
Джейсон Гол
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.