我想在循环中向列表添加元素(我不确切知道多少)
像这样:
l <- list();
while(...)
l <- new_element(...);
Run Code Online (Sandbox Code Playgroud)
最后,l[1]将是我的第一个元素,l[2]我的第二个元素,依此类推.
你知道怎么办吗?
kon*_*vas 149
您不应该c在循环内部使用添加到列表中,因为这会导致代码非常慢.基本上,当您这样做时c(l, new_element),将复制列表的全部内容.而不是那样,您需要通过索引访问列表的元素.如果您知道列表的长度,最好使用它将其初始化为此大小l <- vector("list", N).如果不这样做,则可以将其初始化为长度等于某个大数(例如,如果迭代次数有上限),然后在循环结束后选择非NULL元素.无论如何,基本点是你应该有一个索引来跟踪列表元素并使用它来添加
i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请查看Patrick Burns的The R Inferno(第2章).
Jas*_*son 14
以下内容将元素添加到循环中的列表中.
l<-c()
i=1
while(i<100) {
b<-i
l<-c(l,b)
i=i+1
}
Run Code Online (Sandbox Code Playgroud)