如何在 R (循环)中向列表添加元素

我想在循环中向列表中添加元素(我不知道具体有多少)

像这样:

l <- list();
while(...)
l <- new_element(...);

最后,l[1]将是我的第一个元素,l[2]是我的第二个元素,以此类推。

你知道怎么做吗?

464255 次浏览

下面向循环中的向量添加元素。

l<-c()
i=1


while(i<100) {
    

b<-i
l<-c(l,b)
i=i+1
}

您不应该在循环中使用 c添加到列表中,因为这会导致非常非常慢的代码。基本上,当您执行 c(l, new_element)时,将复制列表的全部内容。相反,您需要通过索引访问列表的元素。如果你知道你的列表有多长,最好使用 l <- vector("list", N)把它初始化到这个大小。如果你不这样做,你可以初始化它,让它的长度等于一个大数字(例如,如果你有一个迭代次数的上限) ,然后在循环结束后选择非 NULL 元素。无论如何,基本的一点是,你应该有一个索引,以保持轨道的列表元素和添加使用,例如

i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}

欲了解更多信息,请看 Patrick Burns 的 地狱之火(第2章)。