R для циклу перехід до наступної ітерації 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
Охайний. Для ОП: див. ?ControlПодібні функції
MichaelChirico

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

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) }
Олексій Ферапонтов

Дякую @ Олексій Ферапонтов, тепер я бачу, чому помилка "зайва дужка" постійно з'являється у моїй старій версії.
Jason Goal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.