Использование Next в потоке управления - PullRequest
18 голосов
/ 14 февраля 2012

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

Используя приведенный ниже пример, допустим, я не хочу, чтобы он печатался, если только x[i] > 5, ожидаемый результат будет 5–10 на экране:

x <- 1:100
for(i in 1:10) {
# next(x[i] < 5) # Just for conceptualizing my question.
print(x[i])
}

Как бы я реализовал использование next для достижения чего-то похожего на то, что показано выше?

Ответы [ 2 ]

15 голосов
/ 14 февраля 2012

Я дам вам полный пример и ответ «да», но я не уверен, что ваши вопросы:

R> for (i in 1:10) {
+     if (i < 5) next
+     print(i)
+ }
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
R> 
10 голосов
/ 14 февраля 2012

Чтобы это работало, вам нужно проверить, есть ли x < 5 и, если это так, перейти к next. next будет, в свою очередь (цитируя страницу справки), «[прекратить] обработку текущей итерации и [продвинуть] индекс цикла», начиная снова через цикл.

x <- 1:100
for(i in 1:10) {
    if(x[i] < 5) next
    print(x[i])
}
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...