Цикл повторения в 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