R forループは次の反復にスキップしますifelse


90

次のような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

回答:


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

5
きちんと。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) }3番目の反復をスキップするつもりで印刷したいというような ことをしたい場合、場合によっては、扱いやすいようにスキップしたものを記録する必要があります。
Jasonゴール

1
@ジェイソンゴール-次のifように、ステートメントには追加のブラケットが必要になりますfor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey

Thanks @ Alexey Ferapontov、古いバージョンで「余分なブラケット」エラーが表示され続ける理由がわかりました。
Jasonゴール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.