更新见下文
我不知道如果没有用于索引的计数器/迭代器,如何用while循环中的元素填充列表或向量。见下面的最小例子。我有一个更复杂的while循环,就像下面的foo一样,它有一个不包含数字的逻辑语句,因此我不清楚如何使用x填充列表vec。是否可以在while循环中创建某种迭代器,这样每次遍历while循环时,迭代器只会增加1?然后我可以使用这个迭代器来索引列表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()
答案 0 :(得分:1)
使用构建自己的迭代器的方法非常简单。下面是一些示例代码,用于打印数字1到10,这可能是完成此任务的最少R方式:
i <- 0
more <- TRUE
while(more == TRUE){
i <- i + 1
print(i)
if(i == 10){
more <- FALSE
}
}
正如你所看到的,它与你描述的非常相似。你只需增加循环顶部的迭代器即可。