UPDATE см нижеВозврат объект из времени цикла
Я не уверен, как заполнить список или вектор с элементами в цикле в то время, когда нет счетчика/итератора индекса по. Ниже приведен минимальный пример. У меня более сложный цикл while, который, как и foo ниже, имеет логический оператор, который не включает число, поэтому мне не ясно, как заполнить список vec с помощью x. Возможно ли создать какой-то итератор в цикле while, чтобы каждый раз, когда вы проходили цикл while, итератор просто увеличивался на единицу? Я мог бы использовать этот итератор для индексации списка vec?
foo <- function(){
names <- list("a","b","c")
vec <- list()
more <- TRUE
while(more == TRUE){
names <- rep(names, 2)
if(length(names) < 50) vec <- names
more <- length(names) < 50
}
vec
}
foo()
Спасибо, это, кажется, работает, как мне хотелось прямо сейчас:
foo <- function(){
names <- list("a","b","c")
i <- 0
vec <- list()
more <- TRUE
while(more == TRUE){
i <- i + 1
names <- rep(names, 2)
if(length(names) < 50) vec[[i]] <- names
more <- length(names) < 50
}
vec
}
foo()
Также, что это связано с возвратом объекта из цикла while? – Dason
О, у меня возникла проблема с возвратом объекта из цикла while, который вложен в функцию. Например, я не мог вернуть vec выше из функции foo. Но я думаю, что это исправляет это. – sckott