Как написать цикл повторения в 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
AB
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