我想在循环中向列表中添加元素(我不知道具体有多少)
像这样:
l <- list(); while(...) l <- new_element(...);
最后,l[1]将是我的第一个元素,l[2]是我的第二个元素,以此类推。
l[1]
l[2]
你知道怎么做吗?
下面向循环中的向量添加元素。
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 元素。无论如何,基本的一点是,你应该有一个索引,以保持轨道的列表元素和添加使用,例如
c
c(l, new_element)
l <- vector("list", N)
i <- 1 while(...) { l[[i]] <- new_element i <- i + 1 }
欲了解更多信息,请看 Patrick Burns 的 地狱之火(第2章)。