R for vòng lặp bỏ qua ifelse lặp tiếp theo


92

Giả sử bạn có một vòng lặp for như vậy

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

Làm thế nào để bỏ qua lần lặp tiếp theo nếu một điều kiện nhất định được đáp ứng?


8
Thay vì bỏ qua khi một điều kiện được đáp ứng, bạn nên không bỏ qua khi một điều kiện là không được đáp ứng -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Câu trả lời:


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

5
Khéo léo. Tới OP: xem ?Controlcác tính năng tương tự
MichaelChirico

thực sự là câu trả lời rất gọn gàng , điều gì sẽ xảy ra nếu tôi muốn làm một số điều như for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }có nghĩa là tôi muốn in rằng tôi sẽ bỏ qua lần lặp thứ 3, vì trong một số trường hợp, chúng tôi cần ghi lại những gì chúng tôi đã bỏ qua để giữ cho mọi thứ dễ hiểu. bạn có nghĩ về điều này không?
Mục tiêu của Jason

1
@Jason Goal - bạn sẽ cần thêm dấu ngoặc cho iftuyên bố, như thế nàyfor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov

Cảm ơn @ Alexey Ferapontov, bây giờ tôi đã hiểu tại sao lỗi 'dấu ngoặc đơn' tiếp tục xuất hiện ở phiên bản cũ của tôi.
Mục tiêu của Jason
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.