Как заставить R пропустить цикл 2: n в случае n = 1? - PullRequest
0 голосов
/ 01 января 2019

У меня следующий запрос.У меня есть цикл

for (i in 2:n) { ... }

, и он выполняется дважды в случае, если n = 1 для i равно 2, а затем для 1, но я хочу, чтобы этот цикл вообще не выполнялся в таком случае.Я также пытался

seq(from = 2, to = 1, by = 1)

, но он генерирует исключение.

Я думаю, что это более распространенный вопрос, но я новичок в этом языке и не смог обойти его или найти обходной путь винтернет.Заранее спасибо.

1 Ответ

0 голосов
/ 01 января 2019

Использовать seq_len, который безопаснее использовать

n <- 1
for (i in seq_len(n)[-1]) {
  cat("Check", i, "\n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
  cat("Check", i, "\n")
}

#Check 2 
#Check 3 
#Check 4 

Когда вы используете 2:n и когда n = 1 дает

2:1
#[1] 2 1

, следовательно, он запускает цикл дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...