Вы можете использовать следующий базовый синтаксис для написания цикла for с диапазоном в R:
for (i in 1:10) {
do something
}
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1: Печать значений в диапазоне
В следующем коде показано, как использовать цикл for для вывода каждого значения в определенном диапазоне:
#print every value in range of 1 to 10
for (i in 1:10) {
print(i)
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
Пример 2: выполнение операции над значениями в диапазоне
В следующем коде показано, как использовать цикл for для выполнения определенной операции над каждым значением в определенном диапазоне:
#define vector
x <- c(4, 7, 9, 12, 14, 16, 19)
#print square root of every value in vector
for (i in 1: length (x)) {
print(paste('The square root of the value in position', i, 'is', sqrt(x[i])))
}
[1] "The square root of the value in position 1 is 2"
[1] "The square root of the value in position 2 is 2.64575131106459"
[1] "The square root of the value in position 3 is 3"
[1] "The square root of the value in position 4 is 3.46410161513775"
[1] "The square root of the value in position 5 is 3.74165738677394"
[1] "The square root of the value in position 6 is 4"
[1] "The square root of the value in position 7 is 4.35889894354067"
Пример 3. Выполнение операции со значениями во фрейме данных
В следующем коде показано, как использовать цикл for для выполнения определенной операции над каждым значением в определенном столбце фрейма данных в r:
#define data frame
df <- data.frame(a=c(3, 4, 4, 5, 8),
b=c(8, 8, 7, 8, 12),
c=c(11, 15, 19, 15, 11))
#view data frame
df
a b c
1 3 8 11
2 4 8 15
3 4 7 19
4 5 8 15
5 8 12 11
#multiply every value in column 'a' by 2
for (i in 1: length (df$a)) {
df$a[i] = df$a[i]\*2
}
#view updated data frame
df
a b c
1 6 8 11
2 8 8 15
3 8 7 19
4 10 8 15
5 16 12 11
Дополнительные ресурсы
Как создать вложенный цикл for в R
Как написать вложенный оператор If Else в R
Как перебрать имена столбцов в R