Как написать повторяющийся цикл в R (3 примера)


Цикл повторения в R может использоваться для многократного выполнения некоторых действий, пока не будет достигнуто условие остановки.

Вы можете использовать следующий базовый синтаксис для написания цикла повторения в R:

repeat {
 #do something

 if (some condition){
 break
 }
}

В следующих примерах показано, как использовать повторяющийся цикл в различных сценариях.

Пример 1: печатать значения до тех пор, пока не будет достигнуто определенное число

В следующем коде показано, как использовать повторный цикл для печати значений, начиная с 1 , пока не будет достигнуто 10 :

#define starting value
x <- 0

#perform repeat-loop
repeat {
 x <- x+1
 print(x)

 if (x >= 10){
 break
 }
}

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

Вот как работал этот код:

  • Мы определили начальное значение как x = 0.
  • Мы сказали R увеличить x на 1, а затем вывести x.
  • Мы сказали R разорвать цикл повторения, как только x достигнет значения 10 или выше.

Пример 2: добавление значений к вектору до тех пор, пока не будет достигнуто определенное число

В следующем коде показано, как использовать повторный цикл для добавления значений к вектору, пока не будет достигнуто определенное число:

#define empty vector and starting value
data <- c()
x <- 0

#perform repeat-loop
repeat {
 x <- x+1
 data[x] <- x
 print(data)

 if (x >= 5){
 break
 }
}

[1] 1
[1] 1 2
[1] 1 2 3
[1] 1 2 3 4
[1] 1 2 3 4 5

Вот как работал этот код:

  • Мы создали пустой вектор и определили начальное значение как x = 0.
  • Мы сказали R увеличить x на 1, а затем вставить значение x в x -ю позицию вектора.
  • Мы сказали R разорвать цикл повторения, как только x достигнет значения 5 или выше.

Пример 3: изменение значений во фрейме данных до тех пор, пока не будет достигнуто определенное число

В следующем коде показано, как использовать повторный цикл для изменения значений в существующем фрейме данных, пока не будет достигнуто определенное число:

#define data frame and starting value
df <- data.frame(A=c(6, 7, 2, 8),
 B=c(2, 4, 5, 5))
x <- 0

#perform repeat-loop
repeat {
 x <- x+1
 df$A[x] <- x
 df$B[x] <- x \* 2

 if (x >= nrow(df)){
 break
 }
}

#view resulting data frame
df

 A B
1 1 2
2 2 4
3 3 6
4 4 8

Вот как работал этот код:

  • Мы создали пустой фрейм данных и определили начальное значение как x = 0.
  • Мы сказали R увеличить x на 1, затем вставить значение x в x -ю позицию столбца A и вставить значение x*2 в x -ю позицию столбца B.
  • Мы сказали R разорвать цикл повторения, как только x достигнет значения, равного или превышающего количество строк во фрейме данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как создать вложенный цикл for в R
Как написать вложенный оператор If Else в R
Как перебрать имена столбцов в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.