Döngü için R bir sonraki yinelemeye atla ifelse


92

Böyle bir for döngüsünüz olduğunu varsayalım

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

Belirli bir koşul karşılanırsa bir sonraki yinelemeye nasıl atlanır?


8
Bunun yerine bir koşul karşılandığında atlama, sen gerektiğini atlamayın şart olduğunda karşılanmazsa -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Yanıtlar:


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

5
Düzgün. OP için: ?Controlbenzer özelliklere bakın
MichaelChirico

gerçekten çok düzgün cevap , ya for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }3. yinelemeyi atlayacağımı yazdırmak istediğim anlamına gelen bir şey yapmak istersem, çünkü bazı durumlarda işleri yoluna sokulabilir tutmak için atladığımızı kaydetmemiz gerekir. bunun üzerine herhangi bir düşünce?
Jason Goal

1
@Jason Goal - ififade için ekstra parantezlere ihtiyacınız olacak , bunun gibifor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov

Teşekkürler @ Alexey Ferapontov, şimdi neden 'ekstra parantez' hatasının eski sürümümde neden sürekli ortaya çıktığını anlıyorum.
Jason Goal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.