Для цикла, внутри которого можно изменить индекс

#r #for-loop

Вопрос:

Я хотел бы знать, как я могу реализовать цикл for, подобный этому, в R (я написал код для C):

 int i;
for (i = 1; i<=10; i  ) {
    print the index i
    i = desiredNumber
}
 

Похоже, что это невозможно в R, потому что, когда я изменяю индекс внутри цикла for, ничего не происходит.

Ответ №1:

Мы можем использовать while петлю

 flag <- TRUE
 i <- 1
 while(flag) {
   print(i)
   i <- i   1
   if(i > 10) {
    flag <- FALSE
   } 
 }
 

Выход:

 [1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
 

Ответ №2:

Не уверен, что я что-то упускаю, но в for цикле R вам не нужно i явно увеличивать.

 n <- 10
for (i in seq_len(n)) {
  print(i)
}

#[1] 1
#[1] 2
#[1] 3
#[1] 4
#[1] 5
#[1] 6
#[1] 7
#[1] 8
#[1] 9
#[1] 10
 

seq_len(n) создает последовательность от 1 до n .

Комментарии:

1. Привет @RonakShah Мне нужно решение, подобное решению akrun, для реализации определенного алгоритма. Спасибо вам за ваш ответ