Так что это базовый цикл for, который просто печатает значения.
data <- cbind(1:10);
for (i in 1:nrow(data)) {
print(i)
}
Если вы хотите сохранить выходные данные, вам нужно инициализировать вектор / список / матрицу и т. Д.1004 *
output <- vector()
for (i in 1:nrow(data)) {
k[i] <- i
}
k
И небольшой пример для вложенных циклов:
data <- cbind(1:5);
data1 <- cbind(15:20)
data2 <- cbind(25:30)
for (i in 1:nrow(data)) {
print(paste("FOR 1: ", i))
for (j in 1:nrow(data1)) {
print(paste("FOR 2: ", j))
for (k in 1:nrow(data2)) {
cat(paste("FOR 3: ", k, "\n"))
}
}
}
Но, как уже упоминалось, вам, вероятно, будет лучше использовать функцию «apply» (apply, sapply, lapply,так далее).Прочтите этот пост: Apply-Family
Или используйте пакет dplyr с оператором pipe (%>%).
Чтобы включить некоторые if / else-synthax вцикл:
data <- cbind(1:5);
data1 <- cbind(15:20)
data2 <- cbind(25:30)
for (i in 1:nrow(data)) {
if (i == 1) {
print("i is 1")
} else {
print("i is not 1")
}
for (j in 1:nrow(data1)) {
print(paste("FOR 2: ", j))
for (k in 1:nrow(data2)) {
cat(paste("FOR 3: ", k, "\n"))
}
}
}
В первом цикле я спрашиваю, равен ли я 1. Если да, используется первый оператор печати («i is 1»), в противном случае используется второй («iне 1 ").